tengkusyafiq

Apr 26, 20261 min read

Rebuilding tengkusyafiq.com — from Strapi to git-as-CMS

Why I tore out the CMS and replaced it with markdown files and a CDN.

Five years ago I built this site on Next.js + Strapi, hosted on a VPS. It was overkill.

For a personal blog with one author, a CMS is friction without payoff:

  • A database I had to back up.
  • An admin UI I logged into once a quarter.
  • A VPS bill for traffic that fits in a Cloudflare free tier.
  • A draft state I never used.

So I rebuilt it. The new site is a static Next.js export, deployed to Cloudflare Pages, with posts stored as .mdx files in this repo.

How posting works now

# write a post
$EDITOR content/blog/2026-04-26-something.mdx
 
# publish
git add content/blog/2026-04-26-something.mdx
git commit -m "post: something"
git push

That's it. Cloudflare Pages picks up the push, builds, and the post is live in about a minute.

What I lost, what I gained

I lost: a CMS UI, scheduled publishing, a draft API, multi-author flows. None of which I was using.

I gained: zero hosting cost, version-controlled content, instant local preview, AI tools that can edit posts in my editor, and the satisfaction of deleting a Postgres database I no longer maintain.

The whole codebase fits in my head now.

#meta#engineering