Skip to main content
Scribe is a WYSIWYG markdown editor with a twist: the markdown syntax that produced each construct stays visible as muted, non-editable markers alongside the formatted result. A heading shows its ## prefix, bold text keeps its ** delimiters, and list items show their - bullets — but you edit formatted text, not a plain-text buffer. This means there is never a gap between what you see and what is stored. The document is markdown, and GET /api/docs/{id}/content returns exactly the source you’d expect.

Writing markdown

Markdown shortcuts convert as you type: Undo (Cmd+Z or Backspace right after a conversion) reverts an unwanted auto-conversion back to the literal characters.

Supported markdown

Scribe’s document model is CommonMark, extended with two GFM features:
  • Strikethrough — ~~text~~.
  • Task lists — - [ ] and - [x] items with clickable checkboxes.
Additionally supported: headings, paragraphs, blockquotes, bullet and ordered lists (nestable), fenced code blocks with a language tag, links, images, hard breaks, and horizontal rules.
Tables are not modeled in v1. Table markup is deliberately parsed as plain paragraph text and round-trips unchanged — a document containing a table can be edited in Scribe without corrupting it, but the table renders as its raw source.Raw HTML is also treated as inert text: it is never interpreted or rendered.

Round-tripping

The same parser and serializer run in the browser and inside the document’s Durable Object, built on a single shared schema. Content written through the editor, pasted in, or pushed through PUT /api/docs/{id}/content all normalizes identically, so the API and the editor can never disagree about a document.

Preview mode

Click the Preview button in the document toolbar to switch to a read-only rendered view with no syntax markers — task lists render as (disabled) checkboxes and links are hardened to open in a new tab. Click again to return to editing. Preview state lives in the URL (?view=preview), so a preview link is shareable with anyone who can read the document.