Skip to content
Star it on GitHub
Public preview · v0.3.0

The build tool
for your docs.

docvia compiles Markdown into typed, pre-rendered modules for React, Svelte, and any framework with an adapter. Incremental builds and built-in search are included, and nothing parses at runtime.

$ npm i -D @docvia/cli
  • MIT licensed
  • Self-host or BYO cloud
  • No vendor lock-in
docvia · build
$ docvia build
parse docs/ · 24 files 38ms
ir transform → 312 nodes 21ms
react emit .docvia/react 104ms
svelte emit .docvia/svelte 98ms
static emit .docvia/html 61ms
Built 24 pages in 412ms
Render targets
ReactSvelteNext.jsViteStatic HTML

Markdown in. Your framework out.

Works with Markdown, TypeScript, React, Svelte, Next.js, Vite, and static HTML.

0kb Markdown parser shipped to the browser
5+ Framework render targets, and growing
100% Typed end to end, in TypeScript
MIT Open source, self-host anywhere
Features

Everything you need to compile docs.

Typed frontmatter, incremental builds, framework-native output, and local search, resolved at build time and entirely yours to own.

01 · Framework-agnostic

Render the same docs to any framework.

IR-based compiler emits framework-native modules. React and Svelte today, more adapters as you need them. Same source.

ReactSvelteViteNext.js
02 · Deploy anywhere

Static output. Any host. Your VPC.

No proprietary runtime, no required cloud. Drop the build artifact on Vercel, Cloudflare, an S3 bucket, or your own infrastructure.

  • Vercel
  • Cloudflare Pages
  • Netlify
  • AWS S3 + CDN
  • Fly.io
  • Self-host
03 · Typed frontmatter

Your schema. Your types. Auto-generated.

Define frontmatter with Zod once. docvia emits a typed Frontmatter interface for every collection, caught at build, not at runtime.

type Frontmatter = {
  title: string;
  tags: string[];
  publishedAt: Date;
}
04 · Incremental builds

Rebuild changed pages. Skip everything else.

Content-addressable cache keyed on source, frontmatter, config, and plugin state. Unchanged files take fractions of a millisecond.

cached intro.md 0.4ms
rebuilt config.md 31ms
cached api.md 0.3ms
cached guides.md 0.3ms
05 · Pluggable pipeline

Five hooks. Yours to extend.

Tap into the compiler at any stage. Add OpenAPI rendering, link checking, or your own AST transforms without forking.

1 beforeParse()
2 afterParse()
3 beforeTransform()
4 afterTransform()
5 beforeRender()
06 · Search + BYO AI

Fast local search. Your AI keys.

Section-level Orama indexing ships client-side. Add semantic search with your own Claude or OpenAI key. No per-credit metering.

incremental builds AI
Incremental cache
Content-addressable hashing skips…
Build performance
DAG-based rebuilds for…
The pipeline

A compiler, not a renderer.

docvia treats your docs the way a modern bundler treats source code: hash, transform, cache, emit. Six stages, parallelized across cores, gated by a content-addressable cache.

  1. 01
    Read
    Parallel directory walk, xxhash content fingerprints
  2. 02
    Parse
    remark + rehype with cached processor
  3. 03
    Sanitize
    Strict allow-list; scripts and iframes blocked
  4. 04
    Transform
    Single-pass DFS into framework-agnostic IR
  5. 05
    Cache
    Composite hash gates per-file work
  6. 06
    Render
    Per-renderer adapter emits typed module graph
Read the architecture overview
import { defineConfig } from "@docvia/cli";
import { createReactRenderer } from "@docvia/renderer-react";
import { shiki } from "@docvia/plugin-shiki";

export default defineConfig({
  sourceDir: "docs",
  outDir: ".docvia",
  renderer: createReactRenderer(),
  plugins: [
    shiki({ theme: "github-dark", langs: ["typescript", "bash", "json"] }),
  ],
});
typescript · 18 lines typed
Use cases

One compiler, many shapes of docs.

The same primitives (collections, frontmatter, plugins) adapt to whatever you're publishing.

API references

Generate fully-typed API docs from Markdown. Embed live examples inline via the OpenAPI plugin.

GET /api/v2/users

Product documentation

Ship a polished docs site that lives next to your app code. Same repo, same deploy, same review process.

Quickstart · Guides · How-tos

Internal handbooks

Wiki-grade content with the rigor of compiled code. Link checking, typed frontmatter, search by default.

Engineering handbook

Tutorials & courses

Long-form learning content with embedded interactive components and predictable navigation.

12 lessons · 4 chapters
Quickstart

Zero to compiled in under a minute.

  1. 01 pnpm add -D @docvia/cli Install the CLI as a dev dependency.
  2. 02 npx docvia init --renderer react Scaffold a docs/ directory and a working config.
  3. 03 npx docvia build Compile your documentation into a typed module graph.
FAQ

Frequently asked questions.

docvia is a build pipeline you own. It produces a static module graph that you deploy wherever you want: Vercel, Cloudflare, an S3 bucket, your VPC, or an on-prem box. There is no required cloud, no proprietary runtime, and no telemetry calling home.

Turn your docs into a build artifact today.

Open source, MIT licensed, in public preview. Install it now, deploy anywhere, and help shape the v1.0 release.