
Connect your AI to Forma without copying a token
Paste one URL, sign in, and approve. Forma now connects to Grok and compatible AI tools through OAuth instead of hand-copied API keys.

Five useful ways to manage a Forma site with Grok or ChatGPT
Practical prompts for auditing pages, improving SEO, drafting posts, updating media, and safely undoing AI edits in Forma.

AI site editing without handing over the server
A high-level look at Forma’s security strategy: OAuth, narrow scopes, short-lived credentials, owner consent, revocation, and rollback.

What it took to make paste-one-URL AI connections work
The engineering story behind Forma’s OAuth-powered remote MCP connector: discovery, PKCE, token rotation, race conditions, CORS, and consent.

Formspree forms without a plugin
Keep contact forms off the PHP path. Drop a Formspree endpoint into a Forma snippet and ship HTML — no mailer, no extra tables, no plugin.

The Agent API grew up: redirects, a health check, and MCP parity
Redirects and a filesystem health check existed in Forma's Agent API but weren't listed in /api/v1/help or the MCP server. Both gaps are closed.

Forma won't shut up about your default password
A non-dismissible red bar now stays on every admin screen until you change the default password or fix a failing hosting check, and uploads/ gets an automatic deny-PHP .htaccess.

The page health panel: SEO feedback where you're already working
Every page and post editor now shows a contextual SEO health panel with one-click fixes, and the same check rides along on the Agent API's page and post lists as seo_ok / seo_issues.

FAQ and custom schema without a plugin
Forma generates FAQPage JSON-LD straight from the visible accordion markup, and a data-fx-schema escape hatch handles everything else — validated on save, merged into one script tag.

From mockup to live Forma page
A practical path from Figma or a static HTML folder to a shipped Forma page: slice the chrome, paste the unique layout, wire SEO, publish.

Build the chrome first: tokens, header, footer
Lock the shared shell before you design twenty pages. Tokens in site-head, navigation in site-header, closing marks in site-footer.

Forma is not a theme store. You bring the design.
There is no theme marketplace. Your HTML and CSS are the theme. Here is how to give Forma a real web design instead of fighting a preset.

Let Cursor edit Forma — with a token, not a shell
Create a scoped Agent API token, point Cursor at /api/v1/help, and let an agent edit pages, posts, and SEO without SSH or FTP.

Your first Forma page
Create a page, set the slug and SEO, drop in snippets, and ship HTML — the whole Forma page workflow without a theme framework.

When PHP died: the afternoon FastCGI went silent
DreamHost returned “No input file specified.” PHP was gone. Here is what broke, what we built so it cannot take a Forma site down again, and how to watch for it.

The 15-minute Forma SEO launch checklist
A practical launch pass for titles, descriptions, social images, schema, robots, sitemaps, redirects, and Forma’s SEO health report.

Snippets and Twig: a tiny design system inside Forma
Build reusable headers, footers, calls to action, and data-driven blocks with Forma snippets and Twig—without a theme framework.

Built-in site search with one shortcode
Add fast, progressively enhanced search to any Forma page with [[search]], SQLite FTS5, and customizable result templates.

HTML cache: static speed without giving up your CMS
How Forma writes real HTML for public URLs, keeps admin editing dynamic, and serves a fast site without waking PHP for every page view.

Publish a Forma blog post in ten minutes
Markdown body, a real description, a featured image, categories, and the SEO fields that actually show up in search and shares.
htmx is how Forma stays interactive without becoming a SPA
Declarative HTML, server-rendered truth, tiny surface area. Why Forma’s admin uses htmx — and why that’s exactly what agents want too.
The Agent API surface, mapped
What a scoped Forma token can actually touch — help, pages, posts, snippets, media, SEO, settings, packages — and what it deliberately cannot.
Site packages: the migration story that doesn’t suck
One zip. Manifest, SQLite, uploads. Move hosts, clone staging, or hand a site to an agent — without a migration consultant.
Admin UX assumptions (why Forma feels the way it does)
Server-rendered, htmx-enhanced, Markdown-first, collapse the chrome when you’re writing. The admin is for humans who ship — and agents who don’t need a SPA.
Forma vs Grav, Statamic, Kirby (and friends)
Flat-file elegance, Laravel-grade CMS power, Kirby’s chef’s-knife DIY — and where a portable SQLite + Agent API CMS actually fits.
Markdown still wins for longform
Block editors are fine until you’re writing. Markdown keeps posts portable, diffable, and friendly to humans and agents alike.
SEO without plugin theater
Robots, sitemaps, Open Graph, JSON-LD, redirects — the boring fundamentals. You shouldn’t need five plugins to ship them.
Portable sites beat platform lock-in
Host hopping shouldn’t require a migration consultant. Versioned site packages — database, uploads, manifest — make portability real.
AI agents belong in your CMS — with a leash
Cursor and friends can edit content over an API. That’s powerful. It’s also why scopes, HTTPS, and audit trails matter.
The weight of WordPress
WordPress won the web. It also shipped a culture of plugins, updates, and ceremony. When is that weight worth it — and when should you walk?
SQLite is enough (and that’s the point)
You don’t need MySQL to run a serious site. One file, fast enough, portable enough — here’s why SQLite belongs under a CMS.
Welcome to Forma
Start here — then read the rest of the Forma blog on CMS craft, AI agents, and portable sites.
No posts match that search. Try another word, or clear search.