A distraction-free markdown scratchpad, synced by Chrome itself.
Write Wall is a Chrome extension (Manifest V3). Your text travels through
Chrome's built-in sync (chrome.storage.sync), the same channel that carries
your bookmarks: there is no Write Wall server, no account to create, and no
tracking.
➜ Install from the Chrome Web Store
- Live markdown rendering — the caret line shows raw markdown, every other
line renders as rich text: headings (up to
###), bold/italic/strikethrough, inline code, links, blockquotes, task lists with clickable checkboxes, bullet and numbered lists, code fences, and horizontal rules. - Focus mode & typewriter mode — dim everything but the current line, or keep the caret vertically centered while you type.
- Sync without a backend — Chrome's built-in sync carries your text to every machine where Chrome Sync is on. Documents grow to ~95 KB by sharding across sync keys, with conflict protection across devices and versions.
- Markdown export — download your pad as
write-wall.md, or copy everything with one click. - Typography & theme — settings drawer with typeface (Mono/Serif/Sans), font size, line width, line height, and light/dark themes with system preference detection.
- Quota awareness — status bar shows word/character/byte counts and a sync quota meter that warns before you hit the limit.
- Data backup & conflict recovery — persistent in-app banner for sync conflicts, storage limits, and incomplete syncs, with one-click restore from a local backup ring.
- Zero data collection — the only permission is
storage. No analytics, no telemetry, and no network calls of its own.
Screenshots coming soon. See docs/images/ for where they'll live once captured.
Grab it here: Write Wall on the Chrome Web Store. Click the extension icon and start writing.
Requirements: Node.js 22 or 24 (nave recommended; see .naverc) and pnpm
via corepack.
corepack enable # provides pnpm (run `nave use` first to pick up the pinned Node)
pnpm install # install dependencies
pnpm develop # build in watch mode (or: pnpm build for production + app.zip)Then load the dist/ directory as an unpacked extension at
chrome://extensions (enable Developer mode → "Load unpacked").
Useful scripts: pnpm test (Vitest), pnpm lint / pnpm lint:fix (Biome),
pnpm type:check (TypeScript), pnpm verify-version (package/manifest
version parity).
Everything persists through Chrome's storage APIs; the only server involved
is Chrome Sync itself, and Write Wall runs none of its own. The document is
sharded across chrome.storage.sync keys, raising the ceiling to ~95 KB
against Chrome's 102,400-byte sync quota. Writes are throttled to respect
Chrome's sync write limits, remote updates patch only changed lines and
preserve the caret position, and torn or conflicting sync deliveries never
reach the editor. See
docs/KNOWLEDGE_BASE.md for the full architecture.
Bug reports and feature requests are welcome via GitHub Issues. See CONTRIBUTING.md for the development workflow and SECURITY.md for reporting security issues.
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).
See CHANGELOG.md.