Skip to content

Repository files navigation

Scribe

Scribe

Beautiful documentation, zero vendor lock-in.

The open-source alternative to Mintlify — built on Next.js App Router.

MIT LicenseNext.jsTypeScriptTailwind CSS

Demo · Quick Start · Components · Configuration


Scribe — dark mode documentation



Quick Start

git clone https://github.com/RapierCraft/scribe.git my-docs
cd my-docs && npm install
npm run dev

Open http://localhost:3000/docs. Your first page is at src/app/docs/page.mdx.


Features

Components

CalloutInfo, warning, success, and danger blocks with icons
CodeTabsMulti-language examples with syntax highlighting and copy button
ApiEndpointHTTP method badge, parameter table, request/response examples
StepsNumbered step sequences with optional per-step code
CardsNavigation cards with icons and hover effects
CodeBlock30+ languages, line highlighting, one-click copy

Navigation

SidebarCollapsible groups, badge support, external link indicators
SearchFull-text search with keyboard navigation (/ to open)
Table of ContentsAuto-generated, scroll-tracking active state
Version SwitcherDropdown to switch between API versions

Developer Experience

Single config fileEverything in scribe.config.ts — no scattered env vars
MDX supportDrop any component directly into .mdx pages
shadcn/ui compatibleCSS variables wired to shadcn — drop in any component
Dark / light modeBuilt-in, zero flash, system preference aware
Server ComponentsApp Router native — no legacy React patterns

Why Scribe?

MintlifyDocusaurusNextraFumadocsScribe
Free
Self-hosted
Next.js App Router
API docs component
Code tabsPluginPlugin
Full-text searchPaidPlugin
shadcn/ui compatiblePartial
Vendor lock-in

Screenshots

Dark mode

Dark mode

Light mode

Light mode

Built-in search

Full-text search


Configuration

One file controls everything.

// scribe.config.tsconstconfig: 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.


Deploy

PlatformCommand
Vercelvercel deploy
Netlifynetlify deploy --build
Dockerdocker build -t my-docs . && docker run -p 3000:3000 my-docs
StaticAdd output: "export" to next.config.js, then npm run build
Self-hostednpm run build && npm start

Used By

Building something with Scribe? Open a PR to add your project here.


Contributing

git clone https://github.com/RapierCraft/scribe.git
cd scribe && npm install && npm run dev

See CONTRIBUTING.md for guidelines.


License

MIT — use it for anything, forever.


If Scribe saved you from a $150/mo docs bill, a ⭐ helps others find it.

Star on GitHub