Anywhere
Annotate any file via inline records or name.ext.mb sidecars — text, code, Markdown, images, PDFs, audio.
In plain text. In git. MarkBack is a tiny text format for leaving feedback on any file — text, code, images, PDFs. Lints, diffs, and lives next to the work.

The browser editor below uses the same markbackjs lint engine the CLI uses. Paste your own content, leave comments with <<<, and watch the diagnostics update as you type.
Three ways to capture a comment. One delimiter. All lint to the same shape.
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ inline │ │ compact │ │ sidecar │
│ │ │ │ │ │
│ the lazy fox │ │ @file ./img.jpg │ │ report.pdf │
│ <<< awkward │ │ <<< approved │ │ report.pdf.mb │
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │ │
└───────────────────────▼───────────────────────┘
┌────────────────┐
│ mb --lint │ parse · validate
│ mb --normalize │ canonicalize
└────────────────┘Inline records keep the comment next to the content. Compact records put @file and <<< on one line — great for batch labeling. Sidecar files (report.pdf.mb) let you comment on anything, even binary files.
%markback 2
@id prompt-001
@tag training
# API Design Task
Create an endpoint that:
- **GET** `/users/{id}`
- Returns JSON with `name`, `email`
- Handle 404 for missing users
<<< approved; clarity=high; needs=error examplesThe content (Markdown) stays readable. The <<< line captures feedback that lints, diffs, and survives a git blame. Try it live →
Prompt iteration usually scatters content, labels, and reviewer notes across JSON, spreadsheets, and ad-hoc scripts. MarkBack standardizes the feedback loop in a text format that works in Git, can be linted, and scales from a single prompt to thousands of records.