Turn a folder of Markdown docs (one per repo) into a Figma-like board — read, search,

filter by status, edit every section, and write changes straight back to the real .md files.

AGENTS.md / README.md files are the single source of truth for a project, but

reading them inside the repo you're coding in is a poor experience. repoDocs reads any folder

with .md files, turns modern documents into cards on a board (or a canvas), and lets you:

- Read long docs as separate, collapsible sections.

- Search and filter by status (✅ done · 📌 pending · 🔶 in progress, configurable per project).

- Edit any section in place with live Markdown preview.

- Export / write back the full Markdown to the original .mdfiles.

- Preview a phone-style mock of your app (config-driven, optional).

npm install

npm run dev # scans ./examples → http://localhost:5173It works out of the box with the demo docs in examples/. Point it at your own repos:

cp mdboard.json mdboard.local.json # then edit (mdboard.local.json is gitignored){

"projectsRoot": "../my-projects-folder", // each subfolder with its .md files

"status": [

{ "key": "done", "emoji": "✅", "label": "Completada", "plural": "Completadas", "hint": "completad|listo" },

{ "key": "pending", "emoji": "📌", "label": "Pendiente", "plural": "Pendientes", "hint": "pendiente|falta" },

{ "key": "progress", "emoji": "🔶", "label": "En progreso", "plural": "En progreso", "hint": "en progreso|validad" }

],

"brands": {

"my-projects-folder": { "accent": "#7c5df8", "palette": ["#7c5df8", "#f59e0b"], "stack": ["React Native", "Expo"] }

},

"apps": [ // optional: phone-style previews; empty = hide the 📱 button

{ "forProject": "my-projects-folder", "name": "My App", "screen": { "kind": "party", "title": "🍾 My App" } }

]

}mdboard.json holds the public defaults (commit it). Put everything local/private in

mdboard.local.json (already gitignored).

- Edits always land in the browser first (localStorage, keypb:edits).

- When served by a Vite server (dev/preview), saving a section writes it back to the real .md(POST /__mdboard/writemiddleware) — and the 💾 Save button in the top bar writes the whole document. SetMDBOARD_NO_WRITE=1(or run outside Vite) to keep edits local-only.

- Export / Copy rebuilds the full Markdown with your changes applied, for manual pasting.

- ↺ Reset discards all local edits (never touches files).

- scripts/sync-docs.mjsparses each- .mdinto sections (H1/H2 blocks), detects status from the config emojis and the summary table (kept as a special- summarysection that is regenerated on export rather than edited).

- Edits are stored per line range (src/lib/registry.tsassembleRaw()), so separators and ordering are preserved and the exported Markdown is byte-identical when nothing is edited.

- src/generated/is auto-generated and gitignored — it never commits your private docs.

MIT © 2026 Alejandro Guerrero. Support the project via GitHub Sponsors (see FUNDING.yml).