A CMS you own, that an AI can drive.
Your site is a spec — content types, pages, logic, access — not a pile of plugins and a database nobody can read. That is what makes it editable by a person, a command line, or a model, without three implementations of the same rules.
pnpm dlx @forinda/fcms-cli init my-site
cd my-site && pnpm install
pnpm start npx @forinda/fcms-cli init my-site
cd my-site && npm install
npm run start yarn dlx @forinda/fcms-cli init my-site
cd my-site && yarn
yarn start bunx @forinda/fcms-cli init my-site
cd my-site && bun install
bun run start
Automations
Say what should happen, then watch it happen
Confirm the booking when the deposit lands. Text the customer when it is confirmed. Post enquiries to your chat at nine every morning.
Press Try it and every step that would touch the outside world tells you what it would have done instead of doing it — and every real run is listed afterwards, including the ones that failed and why.
Every change is reversible
Each edit is stored with its inverse, so undo is a table lookup — from a form, the CLI, or something automated.
Destructive changes ask first
Removing a field that holds data is refused unless you confirm, and the warning says how many rows it costs.
Your data leaves whenever
One command writes a plain pg_dump any Postgres can read. No export
queue, no account, no paywall.
SEO is structural
Server-rendered pages, clean permalinks, a sitemap that maintains itself, and a 301 when a page moves.
Two ways in, one set of rules
Non-technical owners get forms and a plain-language diff before anything lands. Developers get a spec directory under version control:
fcms link https://my-site.example fcms login fcms plan # what would change, in words fcms apply # destructive changes need --yes
Both go through the same validation, the same destructive gate and the same history. There is no privileged door — and an agent driving the MCP server goes through it too.
Where it is
Self-hostable and doing real work: the spec and the language, the renderer, the admin and its canvas, the CLI, an MCP server, the assistant, and the install above. On top of those, a business that takes bookings has the whole path — search by date or distance, a multi-step journey, a deposit, automations that confirm and notify, and each visitor seeing their own bookings and nobody else's.
What is not done, because finding out later is worse:
- M-Pesa and the messaging providers are written against their documented APIs and have never been run against a live account. The product says so where you would use them, and taking payment at the counter works today with no account at all.
- Plugins have a contract but no marketplace: installing one is a dependency and a deploy, reviewed, rather than a button.
- There is no hosted service. This is software you run.