CHROME EXTENSION · FREE · OPEN SOURCE · MIT

Review your build.
Brief your AI.
Ship the fix.

You built something with Claude or an AI editor. Now you're staring at the browser, spotting issues, losing context every tab-switch. Markup lives in your sidebar — leave a note on anything, generate one structured brief. Paste it in. Done.

BUILDING WITHOUT A REVIEW PROCESS

Developers are shipping without reviewing.
Not because they don't care —
the tools just weren't built for this workflow.

No tool
for this
existing QA tools don't work
on localhost or in the AI workflow
Lost in
tab switching
every context switch adds
friction and drops issues
One
paste
all issues, exact selectors,
sorted — ready for Claude or Cursor
HOW IT WORKS

Three steps from issue to fix.

STEP 01

Click any element
on any page.

Open Markup from the toolbar. Leave a note on anything — localhost, staging, live, or file://. In Dev Mode, hover any element to pin your note to it with an exact CSS selector for developer handoff.

Works on localhost:3000 · staging · file:// · any https:// URL
STEP 02

Leave a note.
Type or speak.

Tag each issue: Bug, Design, Copy, or Question. Notes auto-save per URL — close the browser, they're still there. Works with Wispr Flow: dictate while you scroll.

Notes persist per URL in local storage. No account, no backend.
STEP 03

Generate the brief.
Paste into Claude.

One button turns your notes into a structured markdown brief — sorted by severity, with exact selectors. Paste it directly into Claude, Cursor, or any AI. Fix everything in one pass instead of context-switching per issue.

No AI involved in generation. Template-based. Runs offline.
THE OUTPUT

This is what you paste into Claude.

Structured markdown. Exact selectors. Sorted by severity. Copy in one click.

## Review Brief — Homepage Audit > Reviewed: getmarkup.dev · 3 notes · Generated: 2026-03-04   ---   ### Critical (1) **[nav.nav-mobile]** Navigation not keyboard accessible — no visible focus states. Selector: nav.nav-mobile Type: Bug   ### High (1) **[button.cta-button]** Text truncated on mobile — shows "Get Star" not "Get Started". Selector: button.cta-button Type: Bug   ### Medium (1) **[img.hero-image]** Missing alt text — screen readers receive nothing. Selector: img.hero-image Type: Design
WHY MARKUP EXISTS

The only tool that does all four.

Tool Works on localhost? Element annotation? Screenshot capture? Fix brief output?
Jam.dev
BugHerd
Marker.io
Loom
Markup ✦
WHO IT'S FOR

Built for the way you
actually work.

P1 · THE BUILDER
The Builder
VIBE CODER / NON-TECHNICAL FOUNDER
Before Markup: typed notes into a running Google Doc between coding sessions. Lost context every time.
"When I finish a session, I want to capture every issue by voice and ship a brief to Claude in one click."
After: voice notes into Markup, brief generated, Claude fixes 30 things in one paste.
P2 · THE PRODUCT DESIGNER
The Product Designer
UX / UI DESIGNER
Before Markup: annotated screenshots with red arrows in Preview, then described the fix in text — losing element context every time.
"When I audit a UI, I want to pin issues to exact elements so engineers know precisely what to fix."
After: every issue anchored to an exact CSS selector. Zero ambiguity in the developer handoff.
P3 · THE FREELANCER
The Freelancer
WEB AGENCY / INDEPENDENT CONSULTANT
Before Markup: narrated a Loom recording and hoped the client understood the context.
"When I audit a client site, I want a polished report without manual note-taking."
After: annotate the live site, screenshot key issues, export a PDF. Professional client report in minutes.
THE ORIGIN STORY

Built with one arm.
On medical leave.

In early 2025 I had shoulder surgery. One arm in a sling, no keyboard workflow, a product to build. So I did it anyway — dictating every line of context into Wispr Flow, using Claude and Cursor to write the code, and Markup to review what I was shipping.

Markup isn't a thought experiment about AI-assisted development. It's what AI-assisted development actually looks like in practice, from someone who had no other option but to build that way.

"Constraints don't stop you from building. The right tools make constraints irrelevant."
🎙 Wispr Flow + Claude + Cursor + Markup → shipped with one working hand
ABOUT THE BUILDER
Noah Levin
CPO · Aish Global (AishU platform) Serial entrepreneur Building in public

I build educational technology using AI at Aish, a global Jewish education organization — the same AI-native workflow I use there is what built Markup. Everything I learn, I share. Follow along.

MIT LICENSE · OPEN SOURCE

Fully open source.
Build what I didn't.

The brief format, storage model, and note types are all documented. Fork it, extend it, build the VS Code extension, add your own export. I built the tool I needed — the rest is yours.

DOCUMENTATION

Everything you need
to use Markup.

User guide, brief format, and open-source contributor docs — in one place.

Brief Format / Format Reference

Brief Format Reference

The brief is a structured markdown document generated from your annotation session. This page documents the exact output format so you can parse it, extend it, or paste it directly into any AI tool.

Output structure
## Review Brief — {session title} > Reviewed: {url} · {n} notes · Generated: {date} --- ### Critical ({n}) **[{CSS selector}]** {note text} Selector: {exact.css.selector} Type: Bug | Design | Copy | Question | General ### High ({n}) **[{CSS selector}]** {note text} Selector: {exact.css.selector} Type: {type}
Template-based No AI No API Runs offline MIT license
View full documentation →