The Frustration That Started It All
In 2026, building great documentation should be simple. You write Markdown (or MDX-like files), get beautiful navigation, search, theming, and interactivity—and ship a fast, static site.
Yet most tools felt... off for me.
- React-heavy ecosystems: Docusaurus, Nextra, Fumadocs, Vocs, and many others are excellent—but they're built around React (or Next.js). If you're in the Svelte/SvelteKit world, you're either porting styles/components awkwardly or dealing with framework mismatch.
- Dated or convoluted alternatives: Some older generators lack modern polish (no runes, weak component integration, sluggish builds). Others bury you in complex config files, fragile plugins, or heavy dependencies.
-
The "just works" gap: I wanted file-system routing from folders,
_meta.jsonfor clean ordering, zero-config full-text search, and seamless Svelte components inside Markdown.
So I did what any self-respecting developer does when annoyed enough: I built it myself. For the sake of building it, yes—but mostly because I wanted a docs tool that feels like Svelte.
Meet SVOCS — Beautiful docs with Svelte & Markdown.
What SVOCS Actually Is
SVOCS is a Svelte-first static documentation site generator. Drop Markdown (.md) or enhanced Svelte Markdown (.svx) into a content/ folder, and you get:
-
File-system routing — Folders = routes.
_meta.jsonhandles titles, ordering, and grouping. No maze of config files. - Full-powered UI out of the box — Top nav, sidebar tree, breadcrumbs, table of contents, heading anchors, reading time, dark/light mode.
- Zero-config search — Pagefind indexes everything at build time. Fast, client-side, no servers or API keys. (Plus pluggable backends: Orama, FlexSearch, etc.)
- Markdown meets real Svelte — Write fast in Markdown. Drop live interactive Svelte components wherever you need them. Perfect for demos, charts, etc.
- Runes-first reactivity — Built with Svelte 5 runes. Theme state, sidebar, search—all modern Svelte, no legacy stores.
-
Tiny & fast — Static export via
adapter-static. ~100KB JS gzipped, 95+ Lighthouse scores, quick cold builds. - Flexible tooling — First-class support for Bun, pnpm, Deno. Works with your preferred runtime.
-
Batteries included — SEO + sitemap, copy/view as Markdown,
llms.txtfor AI tools, Mermaid diagrams, LaTeX math, accent-color theming, sub-path deploys, and even AI-generated docs from a repo.
# Quick start feel
$ bun run dev # or pnpm / deno
➜ ready in ~300ms
Why "For the Sake of Building It" Matters
Yes, there was a practical need. But honestly? Building SVOCS was fun. Svelte 5's runes make state management delightful. The compiler's power lets you push a lot to build time. And integrating something like Pagefind feels seamless.
In a React-dominated docs landscape, carving out a native Svelte path felt like the right itch to scratch.
If you're already in SvelteKit, this means:
- No context-switching between frameworks.
- Full access to your existing Svelte components.
- The joy of runes everywhere.
- A docs site that ships as tiny static files.
Who Is It For?
- Svelte/SvelteKit users tired of React-centric tools.
- Open-source maintainers wanting polished, low-maintenance docs.
- Teams that value simplicity, performance, and Git-based workflows (Markdown in repo = ownership and history).
Try It Yourself
Head to https://svocs.dev/ and explore the starter docs.
Quick start (from the site):
- Scaffold a new project.
- Add content in
content/. -
bun run dev(or equivalent) and iterate.
The full docs cover components, theming, search backends, AI features, deployment, and more.
What's Next?
SVOCS is young and opinionated (by design). I'd love feedback from the community—especially on pain points it solves (or doesn't yet).
- Star it / open issues on GitHub (link in the footer of svocs.dev).
- Share your docs sites built with it.
- What missing feature would make this your default?
The Svelte ecosystem keeps growing because we build the tools we want to use. SVOCS is my contribution to that.
Thanks for reading—now go write some docs that don't suck.
Top comments (0)