Which technologies to choose for a personal blog?
My story to starting my small little piece of the internet
Table of contents
A few months ago, I decided I wanted to create my website. I wanted a little piece of the internet where I could share thoughts, ideas, art, etc.
Why?
There are a couple of reasons why I wanted to do this, and here's the list:
I wanted a personal website/portfolio of my work
I wanted to be in complete control of my blog posts (data ownership)
I wanted to expand on it and work on it whenever I want
How?
I started researching what others were doing. I ended up trying out Ghost for some time, but the problem was that I wanted to avoid building a theme. So I searched a bit more and found out about the world of headless CMS.
Headless CMS works like a regular CMS on the backend/admin side. But there is only an API layer shipped, no front end, so you need to create it yourself.
I liked that idea and searched for what was out there. I found a couple of CMSes, but in the end, I ended up using NetlifyCMS (https://www.netlifycms.org/).
NetlifyCMS is a lightweight CMS that doesn't require a database. Instead, the content is in your application code.
I have configured NetlifyCMS to work with my GitHub, so every time I change a blog post, it creates a commit and pushes it to the main.
Frontend
I was keen on SSR due to its SEO benefits, so I had NextJS or Gatsby in mind. I had already used Next on a few projects before, so I knew what it was.
Even though I knew NextJS, I opted in for Gatsby. The main reason is its plugin system. The plugin system solves many issues, such as serving images, compressing, setting up NetlifyCMS, etc.
I also followed an intro post that gave me an excellent intro to NetlifyCMS, and you can see how it all ties in together over here: https://www.gatsbyjs.com/tutorial/blog-netlify-cms-tutorial/
Deployment
I was already satisfied with NetlifyCMS, and Heroku will no longer allow their free tier, so I was keen to try out Netlify.
You need to link your git repository and a super simple setup to deploy it. After that, everything else is done for you by Netlify!
One thing Netlify also provides is user management, which is free if you're only one user. This means I can securely log in to my CMS through OAuth without a hassle.
Authentication
Since I need some authentication layer, I figured the easiest solution is to use what's already there!
Netlify has a service called Netlify Identity, which is a service that brings full-service authentication out to you.
This is a perfect fit since now everything for my website is in a single Netlify account instead of using Netlify for deployment and then Auth0 just for authentication.
What's next?
Next comes the most challenging part of blogging: writing posts and being consistent with them! It was fun making it and experimenting with different technologies over these weeks.
I still have a million ideas about what I want to do with this website and what I want on it, and they're going to appear one step at a time!