Beautiful documentation, zero vendor lock-in.
The open-source alternative to Mintlify — built on Next.js App Router.
git clone https://github.com/RapierCraft/scribe.git my-docs
cd my-docs && npm install
npm run devOpen http://localhost:3000/docs. Your first page is at src/app/docs/page.mdx.
| Callout | Info, warning, success, and danger blocks with icons |
| CodeTabs | Multi-language examples with syntax highlighting and copy button |
| ApiEndpoint | HTTP method badge, parameter table, request/response examples |
| Steps | Numbered step sequences with optional per-step code |
| Cards | Navigation cards with icons and hover effects |
| CodeBlock | 30+ languages, line highlighting, one-click copy |
| Sidebar | Collapsible groups, badge support, external link indicators |
| Search | Full-text search with keyboard navigation (/ to open) |
| Table of Contents | Auto-generated, scroll-tracking active state |
| Version Switcher | Dropdown to switch between API versions |
| Single config file | Everything in scribe.config.ts — no scattered env vars |
| MDX support | Drop any component directly into .mdx pages |
| shadcn/ui compatible | CSS variables wired to shadcn — drop in any component |
| Dark / light mode | Built-in, zero flash, system preference aware |
| Server Components | App Router native — no legacy React patterns |
| Mintlify | Docusaurus | Nextra | Fumadocs | Scribe | |
|---|---|---|---|---|---|
| Free | ✗ | ✓ | ✓ | ✓ | ✓ |
| Self-hosted | ✗ | ✓ | ✓ | ✓ | ✓ |
| Next.js App Router | ✗ | ✗ | ✗ | ✓ | ✓ |
| API docs component | ✓ | ✗ | ✗ | ✗ | ✓ |
| Code tabs | ✓ | Plugin | ✗ | Plugin | ✓ |
| Full-text search | Paid | Plugin | ✓ | ✓ | ✓ |
| shadcn/ui compatible | ✗ | ✗ | ✗ | Partial | ✓ |
| Vendor lock-in | ✓ | ✗ | ✗ | ✗ | ✗ |
Dark mode |
Light mode |
Full-text search |
|
One file controls everything.
// scribe.config.ts
const config: ScribeConfig = {
name: "My Product",
description: "The fastest way to ship your API.",
url: "https://docs.myproduct.com",
logo: { light: "/logo-light.svg", dark: "/logo-dark.svg" },
theme: { primaryColor: "#6366f1", font: "Inter" },
navigation: [
{
title: "Getting Started",
items: [
{ title: "Introduction", href: "/docs" },
{ title: "Quick Start", href: "/docs/quickstart" },
],
},
],
search: { enabled: true, shortcut: "/" },
versions: ["v2.0", "v1.9"],
};Change primaryColor and every component updates. Compatible with any shadcn/ui theme.
| Platform | Command |
|---|---|
| Vercel | vercel deploy |
| Netlify | netlify deploy --build |
| Docker | docker build -t my-docs . && docker run -p 3000:3000 my-docs |
| Static | Add output: "export" to next.config.js, then npm run build |
| Self-hosted | npm run build && npm start |
Building something with Scribe? Open a PR to add your project here.
git clone https://github.com/RapierCraft/scribe.git
cd scribe && npm install && npm run devSee CONTRIBUTING.md for guidelines.
MIT — use it for anything, forever.
If Scribe saved you from a $150/mo docs bill, a ⭐ helps others find it.



