Bye Ghost, Bye WordPress, Hi Strapi, Hi Gatsby

calendar_month December 20, 2019

This article is the preface to a new series. In the upcoming series I will set up an environment with Strapi, import data from my blog, run Gatsby.js in Azure, maintain and deploy my projects via DevOps. In this article I present this undertaking.

Why bye bye?

I actually think both systems are very good for blogging. The way both systems are built, a blog, website, news portal, etc. can be set up pretty quickly.

I want more control over the data model, I want more than just Pages and Posts, I want to be more of a developer/maker, I want more frustration but also more success moments.

Ok, a big portion of “I’m doing this because I can” is of course also involved :)

The Undertaking

I will further expand my two blogs – aytac.kirmizi.online and ak8s – and split them into different domains. This means I have to mirror content in different directions.

Then there are the mentioned projects – the portfolio of what I’ve done. That’s quite a lot. With the current systems I would have to painstakingly write “text”, or somewhere maintain a txt with bullet points for the tasks – as a data model-conscious person that would somehow not fit me.

JAMStack

I’m diving into the glamorous world of JAMStack, Headless CMS, DevOps, and Static Site Generators. So many buzzwords at once – you have to digest that first.

What is the Jamstack? It’s not about specific technologies. It’s a new way of building websites and apps that delivers better performance, higher security, lower cost of scaling, and a better developer experience. — jamstack.org

Headless CMS

I decided on Strapi. Prismic is a PaaS – very limited. Squidex offers a managed service and also the option for self-hosting, it’s written in .NET Core, however I didn’t find the interface very appealing. So Strapi – written in Node.js.

I’ll host it as a Docker container, either somewhere at my place or as a container in an Azure App Service (Free Plan). For the Media Library I’ll use Backblaze (S3-compatible, up to 10 GB free).

Static Site Generator

Static Site Generators are tools that create static HTML pages based on other technologies – e.g. Markdown, JavaScript (React, Angular, Vue), and XHTML. Since static pages don’t need databases etc., they are generally more secure and cheaper to host.

I decided on Gatsby without having tested the other mentioned SSRs. The learning curve seemed easier and there are numerous examples for Strapi.

The result will most likely be hosted in an Azure Storage Account with a CDN in front of it.

DevOps

The decision came quickly – due to habit, OOTB, and availability – on Azure DevOps. In my case, DevOps stands for source code management, automated builds, and automated deployment.

What’s Next?

Step by step: first the data model, then the pages, and finally the automated deployment.

I also have a vision of a Search Center (Azure Search, Elasticsearch, Lucene/Solr – not yet decided), where content from all 4 pages can be searched. Then a comment system that always delivers the same content for each article on each page.