Tell yer agent. It ships the page.
PirateCMS is a git-based CMS for marketing pages — your AI agent is already connected as the editor. Describe the site you want; it writes typed, validated sections and opens a preview URL. No dashboard, no database.
- ✓Every page is one MDX file — humans read it, machines validate it
- ✓Your agent edits it over MCP; broken frontmatter can't build
- ✓Git is the database, a PR preview is the publish button
- ✓Plain files you own — no lock-in, take it anywhere
npx @piratecms/createOpen Claude Code. Say what you want.
Every site ships with the MCP server and skills wired in — your agent already knows how to build pages, validate them, and put them live. You describe, it does.
No dashboard to learn. The agent writes typed, validated sections — broken content can't build, so nothing broken can go live. Prefer your own hands? It's all plain MDX files in your repo.
Today: your agent on your machine. Next: hosted agents you set up once and let sail.
A CMS is either a walled garden or a weekend of glue code.
Both cost you every time you want to change a headline.
Hosted CMSes lock your content away
Your pages live in someone else's database, behind a login, priced per seat. Every contributor is another bill.
Hand-rolled MDX rots
Roll your own Next.js + markdown and six months later nobody remembers the schema. One typo ships a broken page.
Marketers wait on developers
"Just change the price" becomes a ticket, a branch, a deploy. The person who wants the change can't make it.
A real content layer, no admin panel in sight.
Your agent is the editor
Describe the change in plain English. Claude Code edits the files over MCP — invalid content fails the build loudly, so agent-as-editor is actually trustworthy.
Git is the database
Every change is a diff. History is your audit log. Every branch gets a preview URL to approve before it's live.
Typed, validated sections
Fourteen sections ship ready to use — hero, pricing, FAQ, comparison. Each prop is checked against a strict schema. An invented prop can't build.
One file per page
A page is MDX with a sections list. Humans read it top to bottom, machines read it as data. Same file, two audiences.
Framework is an output device
The same content renders through Astro or Next.js. Switch with one command, not a rewrite.
No lock-in, ever
Everything is plain files you own — MDX, YAML, git. Leave whenever you like and take your content with you.
How PirateCMS compares
| PirateCMS | Hosted CMS | MDX by hand | |
|---|---|---|---|
| Your content stays plain files you own | — | ||
| Agent edits it for you, safely | — | — | |
| Invalid content can't ship | Sometimes | — | |
| Contributors don't need a paid hosting seat | — | N/A | |
| Git history is the audit log | — | ||
| Swap frameworks without a rewrite | N/A | — |
Everything is a file you can read
No database rows, no hidden state. Git is the database, the diff is the audit log.
One file per page
src/content/pages/ is the whole site — file path = URL. Add a file, that page exists; delete it, it's gone. Custom sections and shared data live right beside them.
Sections are data, not code
A page is MDX with a sections: list in frontmatter — each item is a section type plus its props. Your agent writes it as typed data, and a misspelled prop fails loudly before it can ship.
One config file runs the ship
Brand, colors, nav, SEO and the framework live in pirate.config.yaml. Change a brand color and every section re-skins; flip astro to next and the same content builds on the other framework.
What this design buys you
The agent is the sync, not a plugin
Need data from a tool only your agent can reach — a reviews platform, analytics, GitHub? It calls its own tools, writes the result into the page, and you review the diff. Hosted CMSes can't do that. They don't have your agent's connections.
Flat costs, no matter the crew
The usual flow puts every contributor on your hosting team — a paid seat each. Here contributors only ever touch content, and PirateCMS does the publishing. Add a guest author, an agency, a client — the bill doesn't move.
The questions every skeptic asks
Where's the dashboard?+
Not where you'd expect. Editing needs no dashboard — your agent, git, and a preview URL cover it, today from your own computer. What's coming is a different kind of dashboard — invite teammates, connect your marketing tools (analytics, webmaster tools), and set up autonomous agents that ship pages for you. It will never become a place where content gets locked into UI blocks. Pages stay plain files in your repo.
Do I need to know git?+
No. You talk to the agent; it handles branches, commits, and PRs. You get a preview URL to approve. Git stays invisible unless you want to reach in.
Is my content locked in?+
Never. It's MDX and YAML in your own repo. No proprietary database, no export button to beg for. Clone it, move it, delete us — the content is yours the whole time.
What if the agent writes something broken?+
It can't ship it. Every section prop is validated against a strict schema at build time. An invented or misspelled prop fails the build loudly instead of silently shipping a broken page.
Can I still edit by hand?+
Always. It's just files. Open any page in a text editor and change a headline. The agent is the fast path, not the only path.
A crew that ships while ye sleep
Bring the whole team aboard
Invite teammates from a hosted dashboard — no git setup, no local install. Everyone talks to the same site.
Connect your marketing tools
Plug in analytics, webmaster tools, review platforms. Your agents read real numbers instead of guessing.
Autonomous agents on watch
Set up agents that run on their own — refresh a landing page from campaign data, draft the changelog, ship pages for you. Every change still lands as a reviewable diff.
Get yer ship in one command.
The wizard asks three questions — where, which framework, which package manager — then builds a standalone site and verifies every step.
npx @piratecms/createRead the docsPrivate testing phase — needs npm access to the @piratecms org. Everything you build is plain markdown in your own git repo.