We ran on a third-party headless CMS for a year. It was lovely until it wasn't — and the failure modes were never the ones we planned for.

One source of truth

Third-party content services are great until they aren't — rate limits, schema drift, an extra system to learn. We consolidated everything into Postgres so the data lives next to the app that uses it.

What we actually gained

  • Joins instead of N+1 API calls.
  • Backups and migrations that match the rest of the stack.
  • Seed scripts that recreate content in one command.
  • No monthly bill scaling with read volume.

Boring is reliable

A relational table you can query, back up, and seed in a script beats a remote API for the kind of content most sites actually have. Less magic, more uptime.