Skip to content
Backpack
Esc
navigateopen⌘Jpreview
On this page

ADR 05: Own CMS over Sanity and friends

Why we did not adopt a headless CMS product.

Status: decided (2026-07-17)

Context

Question raised: should we use Sanity or an open-source headless CMS (Strapi, Payload, Directus, Decap) instead of our own?

Decision

Keep the git-based CMS as the fleet standard.

Reasoning

  • Headless CMS products store content but do not render sites. Our hard problem is mapping content into existing legacy static markup, which no product ships and our system already solves.
  • Per-site or per-seat pricing across 30 client sites reintroduces exactly the recurring cost this project exists to eliminate.
  • Our data is portable: items.json plus a schema per collection. Migrating to any product later is an export script, so choosing simple now costs nothing.
  • Real weaknesses accepted: no real-time collaboration (mitigated with revision guards), custom code we own, GitHub rate limits at extreme scale.

Revisit when

A greenfield, content-first build appears (hundreds of articles, many concurrent editors, localization). Adopt Sanity or Payload per-project in that case without disturbing the fleet.

Was this page helpful?