Self-hosted · one command · no database to set up

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
The visual canvas: a block tree on the left, the live page in the middle, and a generated properties panel on the right.
The canvas edits the real page — same styles, same layout, no preview that disagrees with the site.

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.

How automations work →

The automation builder: pipeline steps on the left, a generated panel for the selected step on the right, and past runs in the middle.
Steps on the left, what each one needs on the right, what it would do in the middle.

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:

terminal
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.