Which stack to use for blogging site?

nishantwrp profile image Nishant Mittal ・1 min read

Hey everyone,
I have decided to make a blogging site for me. I have decided to use Gridsome for that purpose as I am a vue fan.

Now, I wanted your suggestions on what should I use for managing the content, tags etc.

I have thought of two options

  • Use yaml, markdown for the content.
  • Use a CMS for that like contentful.

For what should I go for?


markdown guide
  • I still think CMS is easier to manage, but flat files with Git and probably CI is easier to start with.
  • It doesn't have to be true YAML frontmatter + markdown. You might add some template engine or BB code.

Can you please elaborate on

I still think CMS is easier to manage, but flat files with Git and probably CI is easier to start with.

It would be great if you could list the advantages and disadvantages of both options.

Also, would I have the flexibility to define properties of a blog like tags etc. if I go with a cms?


I prefer Jekyll. I used to do a lot of coding with dynamic loading interactive content in blogs. I just gave up and went the minimalist route.
So now, it's just a simple GitHub Pages (Jekyll) website. I use prose.io and sometime even the GitHub interface itself to do content editing. I rarely push content with Git from my machine.
Take a look at my blog at nirlanka.com if it sounds any good :) I haven't added much content after restarting with Jekyll.


Cool! But I prefer JAMstack.


Sounds good :) With Jekyll alone, it's hard to make interactive websites. So your strategy makes sense.


I initially planned to write posts to a GitHub repo in Markdown and have a Hugo site generated from that, but I found it quite limiting because I needed GitHub repo access and a Markdown editor on any machine that I wanted to write from. So noting down post ideas and quick notes from my phone didn't work too well. Ultimately, I needed a solution that I could set up once then focus solely on writing (from anywhere).

So I ended up moving to self-hosted Ghost CMS (hosted on DigitalOcean). It lets me write from anywhere and use a wonderful editor. I wanted the Ghost backend separate from the public-facing front-end, so I ultimately chose Gatsby to generate a static front-end using Ghost's GraphQL API.

And finally, I wasn't keen on storing media uploads on the DigitalOcean VPS, so I'm using ghost-storage-github to send all media uploads to a GitHub repo. Then Statically's free CDN sits in front the GitHub repo.

Final stack:

Frankly, it ended up being much more complex than I'd have liked. I'm very happy with Ghost and the GitHub repo + Statically combo for writing and media uploads, but the Gatsby feels like it just adds so much... complexity. In hindsight, it would've been better to just use Ghost's front-end so I could just get on with writing.

Any ideas on how to achieve a similar end result with less complexity?


I have been using Hugo for the last few weeks with just YAML/TOML files for my content, as well as simply having GitHub Pages serve my site and I absolutely love it.

Having used WordPress for years and years, I grew to hate dealing with most anything web-related. Constantly worrying if the plugin I am using for X or Y is safe, or if my theme is secure and updated, otherwise, my site will just end up getting trashed due to some vulnerability, having to be taken down, restored, updated, checked and double-checked, etc, way more often than I care to mess with.

With Hugo, I don't really have to worry about any of that, and I quickly realized that the majority of things in which I needed a live database for were things to try and make sure my site was secure, to begin with, and to let me know next time it is down asap.

I tried out using Forestry.io and Netlify at first, but honestly, having to only deal with a few YAML files and some relatively simple templates, I feel like I get a lot more done in way less time. Not only that, creating and customizing the look and feel, layouts for the pages and sections, etc, are actually enjoyable now.

As I went along I ended up writing few scripts to do things like take my data (news posts, changelogs, project details, etc ) from the YAML files I am using for actual site content and converting/formatting it to json (the news and changelogs) and it is then served up for my applications to grab their relevant news and changelogs to display within the respective app.

Then also added in a Go package I came across to create a step within my build process to automatically create thumbnails and rename new images, and other little things like that which, when added all together make for a really quick, efficient, yet powerful workflow I can code completely, as well as test, locally and then all I have to do is push the changes and in a minute or so, they are live.

All said and done, it is pretty great, imo.