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#9
Edit: users may also want to explore using Utterances for authed comments https://github.com/utterance/utterances
Edit 2: I answered some FAQs here sw-yx#50