Documents with superpowers.
Notes that actually do things. Specs that track themselves. 91 typed block types and an open format you own forever.
Typed documents
91 block types with schema validation. Decisions, data tables, tasks, metrics, whole multi-page sites — not just prose. Structure your thinking, not just your words.
Multi-target rendering
Same source renders to HTML, PDF, LaTeX, Typst, slides, terminal, Markdown, and native mobile blocks. Write once. Publish anywhere.
Graceful degradation
A .surf file without a renderer is still readable plain text. Every
block defines its Markdown fallback. No renderer, no problem.
How it works
| Feature | SurfDoc | Markdown | HTML |
|---|---|---|---|
| Typed blocks | ✓ | — | — |
| Open format | ✓ | ✓ | ✓ |
| Machine-traversable structure | ✓ | — | Partial |
| Multi-target render | ✓ | Partial | — |
| Graceful plain-text fallback | ✓ | ✓ | — |
| Multi-page sites from one file | ✓ | — | — |
Open format. Your files. Forever.
SurfDoc files are plain text. They live on disk, in git, in any filesystem.
No cloud dependency. No vendor lock-in. The reference parser is open source
under MIT — install it with cargo add surf-parse.
Who uses SurfDoc
Surfspace
The document-first workspace. Docs, tasks, and chat-to-app — every document and every generated app is SurfDoc rendered by surf-parse.
surf.space →cloudsurf.com
Corporate landing page rendered from a .surf file with hero, features, and stats blocks.
Start writing documents that do things.
Read the format spec, install the open-source parser, or see SurfDoc at work in Surfspace.
View SurfspaceRead the Spec