Skip to Content
margin
mar·gin /ˈmär·jən/n. the space around the text, where readers write back.

Margin is open source, under Apache 2.0.

The open source docs framework.

Mintlify compatible, and free for good.

Margin turns a folder of Markdown and MDX into a fast, searchable docs site. It reads your existing docs.json, so you can leave Mintlify without rewriting a page.

docs.acme.dev/quickstart
Acme/Docs
Search documentation…⌘K
SupportDashboardGet API key
Get startedCopy page

Quickstart

Make your first API call in under five minutes. You'll need an API key from the dashboard.

Install the SDK

bun add @acme/sdk

Test keys start with sk_test_ and never move real money.

AuthenticationScope keys per project and rotate them safely.
WebhooksGet notified the moment an invoice is paid.
Plate IA Mintlify site, rebuilt by Margin from the same docs.json.
§ 1

Own your docs, end to end: the code, the content and the hosting.

Open source.
Every line is on GitHub under Apache 2.0. Read it, fork it, theme it, and run it on Vercel or your own Node server.
maniculehq/margin
Mintlify compatible.
Reads docs.json navigation, colours, logos, fonts, OpenAPI references and redirects. Mintlify themes map to matching layouts.
docs.json
Free.
No seats and no plans. One click deploys to Vercel with a Neon Postgres database.
$0 / month
§ 2

Off Mintlify in three steps.¹

acme/docs · zsh
docs/index.mdxpackage.json
▲ Deploy to Vercel✓ Cloned maniculehq/margin→ acme/docs✓ Provisioned Neon PostgresDATABASE_URL set✓ Set SITE_NAMEAcme Docs✓ Built the starter6 pagesStarter live at acmedocs.vercel.app❯

1Margin reads docs.json the way Mintlify does, and skips any field it doesn't recognise instead of failing the build.

§ 3Pages written for Mintlify render on the first build. Each component is noted beside it.

Your components already work.

Guides

Send your first invoice

Create a customer, bill them, and listen for payment.

1Create a customerEvery invoice belongs to a customer with a billing email.
2Create the invoiceAmounts are in the smallest currency unit.
const invoice = await acme.invoices.create({
  customer: "cus_8fK2",
  amount: 4200,
  currency: "usd",
});

Send an idempotency key so a retry never bills twice.

amountintegerrequired
Amount in the smallest currency unit, so 4200 is $42.00.
currencystringdefault: usd
ISO 4217 currency code.
§ 4Nothing here is extra. There is no plan to unlock it.

What ships in the box.

Search⌘K
Every word of every page, built in. No outside index.
API referenceopenapi.yaml
An endpoint page for every operation in your spec.
Agents/llms.txt · /mcp
Markdown pages, an LLM index and an MCP endpoint.
Versionsdocs.json
Docs for every product version, side by side.
Themesaspen · maple · palm
Mintlify's themes, mapped to matching layouts.
Publishinggit push
Edit docs/, push, and every deploy ships a new content version.
Plate IIA parallel edition, as in a bilingual classic: one page, set for two readers.

Every page, twice.

The same URL serves HTML to people and Markdown to agents that ask for it. llms.txt indexes every page, and /mcp answers search_docs and read_page.

For people
Get startedQuickstart

Make your first API call in under five minutes.

Install the SDK
bun add @acme/sdk

NoteTest keys start with sk_test_

14
For models--- title: "Quickstart" description: "Your first API call." ---Make your first API call in under five minutes.## Install the SDK```bash bun add @acme/sdk ```> **Note** Test keys start > with `sk_test_`.15
§ 5

Notes and queries.

Is Margin really free?
Yes. It's Apache 2.0 and costs nothing. You pay only for the hosting you choose, and Vercel and Neon both have free tiers.
Do I need a database?
Yes, Postgres. The deploy button provisions Neon for you, and locally one docker compose command starts it.
Will my site look the same?
Close, not pixel for pixel. Mintlify themes map to Margin's own layouts, and your colours, logos, fonts and navigation come from the same docs.json.
Can I host it outside Vercel?
Yes. Build it with Bun and run it on any Node 24 server with Postgres. The deploy guide in the repo lists the settings.
Who maintains it?
Manicule, in the open at maniculehq/margin. Issues and pull requests are welcome.
The rest of the margin is yours.

Move your docs this afternoon.