Forma

The portable PHP CMS that doesn’t suck

Dark admin. Pages, blog, podcasts. Real SEO. Connect Grok or another compatible AI with one URL — no shell, no copied token. One SQLite file you can move anywhere.

Portability, not theater

One file. Full CMS. Zero MySQL drama.

The old pitch was “no database.” The honest one is better: Forma keeps everything in a single SQLite file. Fast enough to feel local. Small enough to copy. Serious enough to run a real site.

Site package

formax-site-*.zip
  • manifest.jsonversions
  • data.jsonportable content
  • database/forma.dbthe whole CMS
  • uploads/your media

Speed

No connection pool, no Redis ritual. PHP + SQLite on cheap hosting still feels snappy.

Simplicity

Drop the folder on Apache or Nginx. Log in. Change the damn password. Build.

Portability

Move hosts with a zip: database, uploads, and a versioned manifest future Forma can migrate.

Security surface

One admin. CSRF. Rate-limited login. File validation. Fewer moving parts, fewer ways to get wrecked.

Why Forma kicks ass

Everything you need. Nothing WordPress-shaped.

Same spirit as the original Forma site — SQLite core, htmx admin, agent-ready.

Admin that respects your eyes

Dark, fast, htmx-driven. Built for long editing sessions, not dashboard cosplay.

Pages

Markdown, HTML, or Twig. Own the markup. Ship the layout you actually want.

Blog

Markdown-first posts, clean RSS/JSON feeds, publish dates that mean something.

Podcasts

Episodes, show notes, iTunes-compatible feed. Optional $39 unlock — you host the audio; Forma handles the XML.

Snippets

Reusable blocks with shortcodes. Write once, drop everywhere — copy-paste is for suckers.

Files

Upload, preview, link. Images and audio without a plugin bazaar.

SEO that shows up

robots.txt, sitemap (with images), Open Graph, JSON-LD (FAQ and custom schema included), redirects, per-page health checks right in the editor — automatic when you let it.

AI-ready editing

Paste one MCP URL into Grok or a compatible chatbot, sign in, and approve. Cursor and scripts can use scoped API keys. No SSH theater.

A leash and an undo

Chatbots get short-lived OAuth access without delete, accounts, imports, backups, or core updates. Forma protects one last-known-good site before the first AI edit.

See it in the product

Built for people who will touch the code.

No theme store. No page-builder prison. Forma assumes you’re willing to hack a little — and rewards you for it.

Download on GitHub Source on GitHub Buy Podcast — $39 CMS is free. Podcast is optional.

Dark admin that doesn’t fight you

Sections load fast. Editors use real code tools. Settings for SEO, hosting, cache, access, and versioned backups live where you’d look for them.

Forma dark admin — Blog post editor in Markdown

Write in Markdown or HTML

Distraction-light editing, meta fields that matter, SERP / OG previews so you see what Google and social will see before you publish.

Forma Snippets editor — reusable markup blocks

Connect your AI in one URL

Remote MCP clients discover Forma’s OAuth flow automatically. You sign in, review the exact Site editor permissions, and approve or cancel. API keys remain available for Cursor and scripts.

Forma Settings — Cache, HTML files, and hosting controls

Get started in minutes

Deploy. Log in. Change the password. Build.

No MySQL wizard. No Composer rabbit hole. PHP 8.1+, SQLite, and a web root.

1

Drop Forma on the server

Clone from GitHub, or unzip the latest Release (not main). Keep database/ and uploads/ writable. Later versions: Settings → Update. DreamHost notes are in the docs.

git clone https://github.com/Alta-forma/forma-cms.git
chmod -R 775 database uploads feeds

Source on GitHub

2

Point the vhost at the folder

Apache with mod_rewrite, or Nginx try_files. Local hack:

php -S localhost:8787 router.php
3

Log in and lock it down

Open /admin. Default credentials ship for first boot — change them immediately in Settings → Access. A red bar stays on every admin screen until you do. Later CMS versions: Settings → Update (GitHub Releases only — never main).

4

Publish something real

Edit the home page, wire SEO, upload a favicon, hit Backup for a site package before you get brave.

From the blog

Ideas worth shipping.

CMS craft, agents, SEO, and portability — written like we build. Subscribe via RSS or JSON Feed.

Ready to shape your content game?

Self-hosted PHP + SQLite. Dark admin. Built-in SEO. OAuth-powered AI editing with rollback. One file you can move anywhere — this is the live product. Podcast is a $39 unlock.