The blog
Field notes on Astro, content management and publishing static sites. Written by the people who run the product and their own fleet of sites.
Choosing a CMS for an Astro site: the four families
Git-based, headless SaaS, static-first CMS, or nothing at all. What actually separates these options on an Astro project, and how to decide without regret.
Training a non-technical client on a CMS in ten minutes
The handover decides whether a CMS pays for itself or becomes a support channel. What to demo, what to hide, what to write down, and the measure that tells you your setup is wrong.
Choosing a CMS for a client project: the questions to ask before the demo
Feature comparisons are the least useful way to pick a CMS for client work. Twelve questions that predict how a tool behaves in year two, and what a good answer sounds like.
Astro build times: what actually matters when a client publishes
The gap between a client clicking Publish and their page being live is mostly build time. Where it really goes, which optimisations pay, and why incremental builds are not the answer people expect.
Publishing should end at "live", not at a webhook
Every headless CMS stops at its own API and fires a webhook. What happens in the gap between that webhook and a page a visitor can actually see, and why nobody owns it.
Migrating from Decap CMS to a hosted CMS, step by step
Decap is free and maintained at a minimum. If you are moving an Astro site off it, here is the actual sequence, what breaks, and how to keep a rollback that works.
European CMS: what "hosted in the EU" actually buys you
GDPR, the Cloud Act, transfer impact assessments and sub-processor lists. What EU hosting genuinely changes for a client website, and what it is often sold as changing but does not.
A CMS for developers: schema in code, content out of the repo
Most CMSes ask you to click your content model together in an admin. Putting it in TypeScript instead changes code review, migrations and multi-site work, and costs you something real.
Images in Astro: what a CMS should do for you
Your client uploads a four-megabyte photo from their phone, sideways. Everything that has to happen next, which parts Astro handles, and which parts a CMS should stop making you build.
Multilingual Astro sites: routing, content, and the per-locale trap
Astro's i18n routing is solid. The hard part is the content model behind it, and the pricing model in front of it, where most CMSes charge per language.
The real cost of a headless CMS across twenty brochure sites
Vendor pricing pages are written for one site. Here is the same arithmetic done for a fleet of twenty, with figures surveyed at the source, plus the three costs that never appear on any pricing page.
What a multi-site CMS actually needs to do
Running twenty client sites is not running one site twenty times. The six things that break at scale, and the questions to ask a vendor before you commit a fleet.
Astro's Content Layer, explained through its loaders
Content Layer turned content collections from a folder reader into a pluggable data layer. What a loader really is, how to write one, and why every CMS integration for Astro now looks the same.
How to let a client edit a static site without handing over the repo
Five ways to give a non-technical client edit rights on a static site, what each one really costs in support, and the two questions that decide which one fits.
Flat-file CMS in 2026: when files beat a database
Markdown files with frontmatter still run a large share of the web's small sites. What the flat-file model gets right, the four places it breaks, and how to tell which side of the line your project is on.
What a git-based CMS actually is, and when to use one
Decap, Sveltia, Keystatic and Tina all commit content to your repository. How that works underneath, what it costs your client, and the point where the model stops paying off.
A CMS for Astro that keeps the site static
How to let a client publish on an Astro site without switching to server rendering, without handing over the repository, and without the CMS becoming a single point of failure.