Head to head
Stop guessing which one. Put them side by side.
Up to 4 tools, same rows for each: what it is, what it really costs, the trap, and how to wire it up. The URL carries your picks — send it to anyone.
OutstaticKeystaticMDX
| Field | Outstaticoutstatic.com | Keystatickeystatic.com | MDXmdxjs.com |
|---|---|---|---|
| What it is | Outstatic is an open-source static CMS for Next.js that mounts a writing dashboard inside your own app and commits Markdown or MDX directly to your GitHub repository. Content lives in the repo — there is no database and no external service to pay for. | Keystatic from Thinkmill is an MIT-licensed CMS that makes Markdown, MDX, JSON and YAML in your repository editable through a React admin UI. There is no database. It runs against the local filesystem in development and against GitHub in production. | MDX is a format that lets you write JSX inside Markdown, so an article can embed live React components — charts, interactive figures, embeds — between paragraphs of prose. It compiles to a React component and is supported by Vite, Next.js and Astro. |
| Category | CMS & content infrastructure | CMS & content infrastructure | CMS & content infrastructure |
| Cost tier | free | free | free |
| Pricing | Free and open source (MIT). Deploys inside your Next.js app; no hosted service, seats or API quotas. | Free and MIT-licensed with no seat limits. Keystatic Cloud is an optional free add-on for GitHub auth and image handling. | Free, MIT-licensed open format. |
| Why builders pick it | The lowest-cost way to give a writer a real editor on a Next.js blog: no subscription, no seat count, no API limit. Sets up in minutes on Vercel. | Zero cost and zero vendor lock-in — the schema is a TypeScript file and content stays as plain files you can grep and diff. Ships integrations for Next.js, Astro and Remix. | The reason a technical publication can ship an interactive explainer inside an ordinary article. Every file-based tool here — Tina, Keystatic, Outstatic, Velite — speaks it natively. |
| Watch out for | Next.js only, and tied to GitHub for both auth and storage. Small maintainer team and a modest feature set — no scheduling, no roles, no localization. Not a fit beyond a couple of writers. | Smaller community and slower release cadence than Tina or Payload. No official MCP server, no built-in scheduling, and no multi-stage editorial workflow or approval chain. | MDX is a compiler, not a CMS: no editor, no media library, no workflow, no roles. Non-technical writers will not author raw MDX, so pair it with an editing layer. |
| How to wire it up | npx create-outstatic-app@latest | npm create @keystatic@latest | npm i @mdx-js/rollup |
| Editor's pick | No | No | No |
Which one did you ship?
The grid says what these tools are. This says what builders did about it — one decision per person, changeable whenever you change your mind.
0/280Sign in to add yours.
Or try
Hand this to your Lovable agent
# Tool comparison — Outstatic vs Keystatic vs MDX Source: Kbaise, a directory of tools that work with Lovable projects. Pick one and tell me why before writing any integration code. ## Outstatic (outstatic) - URL: https://outstatic.com - Category: CMS & content infrastructure - Cost: free — Free and open source (MIT). Deploys inside your Next.js app; no hosted service, seats or API quotas. - What it is: Outstatic is an open-source static CMS for Next.js that mounts a writing dashboard inside your own app and commits Markdown or MDX directly to your GitHub repository. Content lives in the repo — there is no database and no external service to pay for. - Why builders pick it: The lowest-cost way to give a writer a real editor on a Next.js blog: no subscription, no seat count, no API limit. Sets up in minutes on Vercel. - Trap: Next.js only, and tied to GitHub for both auth and storage. Small maintainer team and a modest feature set — no scheduling, no roles, no localization. Not a fit beyond a couple of writers. - Wiring: npx create-outstatic-app@latest - Full dossier: /api/public/tools/outstatic ## Keystatic (keystatic) - URL: https://keystatic.com - Category: CMS & content infrastructure - Cost: free — Free and MIT-licensed with no seat limits. Keystatic Cloud is an optional free add-on for GitHub auth and image handling. - What it is: Keystatic from Thinkmill is an MIT-licensed CMS that makes Markdown, MDX, JSON and YAML in your repository editable through a React admin UI. There is no database. It runs against the local filesystem in development and against GitHub in production. - Why builders pick it: Zero cost and zero vendor lock-in — the schema is a TypeScript file and content stays as plain files you can grep and diff. Ships integrations for Next.js, Astro and Remix. - Trap: Smaller community and slower release cadence than Tina or Payload. No official MCP server, no built-in scheduling, and no multi-stage editorial workflow or approval chain. - Wiring: npm create @keystatic@latest - Full dossier: /api/public/tools/keystatic ## MDX (mdx) - URL: https://mdxjs.com - Category: CMS & content infrastructure - Cost: free — Free, MIT-licensed open format. - What it is: MDX is a format that lets you write JSX inside Markdown, so an article can embed live React components — charts, interactive figures, embeds — between paragraphs of prose. It compiles to a React component and is supported by Vite, Next.js and Astro. - Why builders pick it: The reason a technical publication can ship an interactive explainer inside an ordinary article. Every file-based tool here — Tina, Keystatic, Outstatic, Velite — speaks it natively. - Trap: MDX is a compiler, not a CMS: no editor, no media library, no workflow, no roles. Non-technical writers will not author raw MDX, so pair it with an editing layer. - Wiring: npm i @mdx-js/rollup - Full dossier: /api/public/tools/mdx ## Rules 1. Prefer the free tier when no budget was stated, and say what the ceiling is. 2. Read the full dossier before integrating. 3. Fetch /api/public/models before writing any AI model ID.
Agents can fetch the same thing: GET /api/public/compare?slugs=outstatic,keystatic,mdx