A web-based track-changes editor for markdown. Edit naturally — every deletion, insertion, and substitution is captured automatically as CriticMarkup notation.
Built for the workflow: LLM generates draft → human edits with track changes → changes + annotations exported as portable .md → patterns analyzed to improve future drafts.
Live: https://markdown-feedback.com
Phase 9A+B complete — VSCode extension with CriticMarkup inline mode and sidecar mode. Next: Tauri macOS app (Phase 8D). See BACKLOG.md for the full roadmap.
The editor intercepts every edit at the keyboard/input level and transforms it into a tracked change. The document is the change log — there is no separate "before" and "after."
| User Action | Result |
|---|---|
| Delete original text | Text stays in document as red strikethrough |
| Type new text | New text appears in green |
| Select original + type replacement | Substitution: strikethrough old + green new, linked |
| Edit within your own insertion | Normal editing (no tracking) |
| Backspace on already-deleted text | Cursor skips over it |
| Tab on a tracked change | Jump to comment input |
| Cmd+Shift+H with selection | Highlight text for standalone comment |
The output is standard CriticMarkup:
The team {~~delivered the results~>presented their findings~~}{>>active voice is more direct<<} to the board.
{--This sentence was redundant.--}{>>removed for concision<<}
{++A new concluding thought.++}
If you can't access the hosted version — or prefer not to send any traffic to an external site — you can run Markdown Feedback as a single, self-contained HTML file. No server, no install, no network access required.
- Download
index.htmlfrom the latest release, or build it from source:
# Requires Node 20+
npm install
npm run build:single # outputs dist-single/index.html- Open
dist-single/index.htmlin any browser.
That's it. The entire application — editor, track changes, import/export, .docx support — runs from that one file.
Markdown Feedback is a fully client-side application. There is no server, no backend, no analytics, and no network requests. Your documents never leave your browser.
- No data transmission. The app makes zero network calls. It works offline, from a
file://URL, or air-gapped. - No external dependencies at runtime. All libraries (React, the editor engine, .docx parser) are bundled into the HTML file. Nothing is fetched from a CDN.
- No persistent storage beyond your browser. Session recovery uses
localStorage(same-origin, never transmitted). Closing the tab or clearing browser data removes it entirely. - Fully auditable. The file is ~730 KB of minified JavaScript and CSS. The source code is MIT-licensed and available in this repository.
This means it's safe to use on corporate networks, behind firewalls, or in environments with strict data handling policies — your content stays on your machine.
Edit .md files with track changes directly inside VS Code — no browser required.
- Download the
.vsixfile from the latest release - In VS Code: open the Command Palette (Cmd+Shift+P) → type "Install from VSIX" → select the downloaded file
- Restart VS Code if prompted
- Open any
.mdfile in VS Code - Right-click the file's tab → "Open With…" → "Markdown Feedback Editor"
- Start editing — every change is automatically tracked
- Cmd+S saves your tracked changes back to the file
That's it. To make Markdown Feedback the default editor for .md files in a project, add this to your workspace .vscode/settings.json:
{
"workbench.editorAssociations": {
"*.md": "markdownFeedback.editor"
}
}Open the Extensions panel (Cmd+Shift+X) → find "Markdown Feedback" → gear icon → Uninstall.
Full setup instructions, file mode options, and known limitations: docs/vscode-extension.md
# Requires Node 20+
npm install
npm run dev # http://localhost:5173/npm run dev # Vite dev server with HMR
npm run build # TypeScript check + production build
npm run build:single # Single self-contained HTML file
npm run lint # ESLint
npm run preview # Preview production build- React 19 + TypeScript (strict)
- TipTap 3 (ProseMirror) — editor framework
- Tailwind CSS 4
- Vite 7
- nanoid — unique IDs for tracked change spans
- JSZip — client-side .docx extraction
- BACKLOG.md — Roadmap and feature backlog
- docs/prd.md — Full product requirements (intercept architecture)
- docs/project-context.md — Decision log and project context
- docs/docx-import.md — DOCX import architecture (Phase 7)
- docs/vscode-extension.md — VSCode extension architecture (Phase 9)
- CHANGELOG.md — Release history
- CLAUDE.md — AI coding assistant instructions