Moving to a GitHub CMS

Here are my requirements for blogging platforms:

  • Should be easy and fast to update - no long or flaky build process
  • Should store images easily - as simple as a paste from my clipboard - anything else is unnecessary friction
  • Should be easily editable from mobile
  • (optional) should support comment system and different layout formats
  • (optional) wysiwyg markdown based editing - no funky blocks with lots of lockin

After thinking through local markdown, GraphCMS, Notion, Strapi, Directus, and so on, I’ve finally settled on using GitHub as a CMS.

I’ve long admired the OneGraph approach to blogging:

However their use of Relay is a bit too high overhead for me. So I built my own using just the GitHub REST API.

The primary problem with GH’s API is that it rate limits at 5000 requests an hour, which is dicey for a high traffic blog. So either you prerender at build, or you cache on request (we can also cache on build). Netlify’s On Demand Builders are a partial solution to this - partial because content updates will not be respected. I think this is an acceptable tradeoff for all the other functionality github as a cms offers.

The PR for doing this is available here: sw-yx/swyxkit#9

Edit: users may also want to explore using Utterances for authed comments

Tagged in: #meta #blogging

Leave a reaction if you liked this post! 🧡
Loading comments...

Subscribe to the newsletter

Join >10,000 subscribers getting occasional updates on new posts and projects!

I also write an AI newsletter and a DevRel/DevTools newsletter.

Latest Posts

Search and see all content