DEV Community

Chase Reynolds
Chase Reynolds

Posted on

Using Github Issues as a CMS

I originally published this post on my personal blog, and of course on Github.

I am a huge fan of Github Issues. I find it gels very well with my workflow because I can check off to-dos from the command line while I'm committing. Recently, I came across the idea of using Github Issues as a mini-CMS, and I was very intrigued.

My first exposure to this idea was through a tweet from twitter user @swyx, who was using it in their SwyxKit project. The thread included other implementations of this concept, including an API package from @renatorib.

For my usecase, and as a challenge, I wanted to create my version of this concept from scratch and implement it using Gatsby. I'm a big fan of Gatsby as well and wanted to become familiar with the Gatsby plugin library.

Fortunately there was already a plugin to help source the GH Issues data -- I installed the gatsby-source-github-api to make my graphQL queries easier. For Markdown libraries, I chose ReactMarkdown, but I might change this in the future. I was passing in a JSON string written in markdown syntax, not a full Markdown file like many Gatsby plugins are designed for.

Taking an idea from the other implementations I looked at, I used labels to sort my Issues into Issues "blog posts" and everything else that I don't want published. You can even use this for metadata or frontmatter.

This is my first full blog post using this setup, and I still have to work out some of the kinks. Of course, Github Issues is not designed for blogging per se. Nevertheless, it was a fun experiment, and I would love to write a full tutorial later.

Top comments (0)