MDX in Git is the source of truth
Every article is a commit - diffable, reviewable, revertible. Publishing is a pull request. There is no database to run, migrate, or back up.
- schema
- Zod · strict TS
- gate
- CI + pre-commit
- publish
- pull request
Open source · Agent-first publishing
Strand CMS is an open-source publishing system for programmatic blogs and news sites. Articles are MDX in Git, written and optimized by AI agents, with SEO and AI-search built into the core. No database. No CMS UI. No bloat.
npm create strand@latestWatch the flow
Scaffold, let the agent write, merge, and find the post in search — the whole loop in forty seconds.
Versus Ghost
Everything an editor does — drafting, SEO, structured data, scheduling, publishing — an agent can now do against a well-defined contract. So Strand throws out the human-editor machinery and pushes the publishing core further than Ghost ever did, toward AI search.
The artifact is the demo
No screenshots needed — the product output is text. This is what a post looks like in Git, and what crawlers and AI engines see after the build.
---
title: "Why agents publish better"
description: "SEO and AI-search from a
schema, not a plugin."
tags: [seo, geo]
publishedAt: 2026-07-15
sources:
- https://developers.google.com/search
---
Agents don't need a WYSIWYG.
They need a contract.<script type="application/ld+json">
{ "@type": "BlogPosting",
"headline": "Why agents publish better",
"author": { "@type": "Person", … },
"speakable": { … } }
</script>
GET /blog/why-agents-publish.md
→ clean Markdown, not hydrated DOM
llms.txt · llms-full.txt · sitemap.xml
feed.xml · robots.txt · OG + TwitterEvery artifact is live on this site right now: llms.txt · llms-full.txt · sitemap.xml · feed.xml · robots.txt · this post as .md
What it is
Every article is a commit - diffable, reviewable, revertible. Publishing is a pull request. There is no database to run, migrate, or back up.
Sitemaps, JSON-LD, RSS, robots, canonical tags - plus llms.txt and a clean .md of every page for AI search engines. Always on, never a plugin.
A set of skills, an MCP server, and an optional Hermes editor profile let agents research, write, optimize, and publish - against a schema that won't let a malformed post merge.
Deploy the Next.js theme as-is, or consume the typed content API from your own React/Astro frontend. The crawlable surface stays static either way.
The agent model
Marketing and native skills installed into your terminal coding agent. You review, the agent writes.
The strand mcp server exposes structured tools to any MCP client. Fully headless.
A dedicated agent — its own SOUL, skills, cron, and MCP connection — owns the publication and operates inside the blog repo.
Safety model
publish_post refuses to commit to the base branch, never force-pushes, and only auto-merges when the repo itself allows it.
The content schema is enforced in CI and a pre-commit hook. Deploys are gated on the same validation.
The editor agent is instructed never to invent citations, and cited sources are rendered visibly on every article.
How it works
npm create strand@latest asks a few questions - frontend, analytics, agent mode, deploy target - and writes a ready-to-run repo with the content schema, CI validation, and your chosen adapters.
Skills and the MCP server give an agent the tools to draft MDX, optimize for SEO and AI-search, cite sources, and open a PR. A dedicated Hermes editor can run the whole publication.
Merging regenerates the static site and every SEO/GEO artifact, then deploys to Vercel, Cloudflare, Netlify, or your own box - validation-gated.
This site runs on Strand CMS
These posts are MDX in this repo, rendered by the same loader and SEO/GEO generators the scaffolder ships. Proof is in the plumbing: /llms.txt, /sitemap.xml, and a clean .md of any post.
Compare eight Ghost CMS alternatives for publishing, memberships, APIs, hosting, and Git-native workflows. A sourced guide for choosing a practical fit.
Ghost llms.txt support is useful navigation, not a ranking guarantee. Learn what the file can do, what it cannot prove, and what else AI search needs.
Ghost Pro pricing explained from Ghost's official page, with a careful look at self-hosting, infrastructure costs, and Strand's open-source software model.
Quickstart
npm create strand@latestRequires Node 20+. Prefer to read first? The repository has the full design doc, the engine, the scaffolder, the MCP server, and the default theme.