DocVia
A framework-agnostic documentation engine. Parse markdown once, then render it with React, Svelte, or any framework, statically or on the server.
I was using Fumadocs and loving it, until I tried to move one of my projects to Svelte and hit a wall: the markdown processing and rendering were tied to React. That felt wrong. Your docs should not be married to a framework, so I started building one that is not.
DocVia is a framework-agnostic documentation engine. It parses your markdown to an AST, lifts that into a framework-neutral intermediate representation, and then renders it with whatever you use, React or Svelte today and more later. You are not locked into a build step either: render statically at build time, or on the server at runtime, whichever fits the project. The data drives everything, and the framework just draws it.
Core Features
- ๐ Static or server-side: Render docs at build time for a static site, or on the server at runtime. You are not forced into either.
- โก Fast builds: Parallel compilation and incremental rebuilds using content hashing.
- ๐ Full-Text Search: Integrated section-level search powered by Orama.
- ๐จ Shiki Highlighting: Beautiful, accurate syntax highlighting with theme support.
- ๐ ๏ธ Pluggable Architecture: Extend the pipeline with custom hooks (remark, IR transform, render).
- ๐ฆ Monorepo Design: Clean separation of concerns between IR, Core, Compiler, and Renderers.
Project Structure
docvia is built as a PNPM monorepo:
| Package | Purpose |
|---|---|
@docvia/cli | Command-line interface (init, build, dev). |
@docvia/compiler | Parallel build orchestrator and asset pipeline. |
@docvia/ir | Intermediate Representation types and DFS transformer. |
@docvia/core | Micromark-based markdown parser with unified plugin runner. |
@docvia/renderer-svelte | Svelte-specific IR โ JS renderer with Vite support. |
@docvia/plugins | Hook execution engine and configuration loader. |
@docvia/search | Section-level Orama indexing and client search helper. |
@docvia/schema | Frontmatter validation and line-scanner parser. |
Where it stands
The core is nearly there and I am dogfooding it on my own projects, where it works well and the CLI is genuinely pleasant to use. What it needs next is real users testing it on their own docs. Search runs on Orama for fast, near-semantic results across sections.
It is for anyone shipping docs: developers, library authors, and teams who do not want their documentation locked to a single framework.
Let's work together
Have a project in mind? Reach out and let's build something great.