Recently I decided to focus more on writing. My goal was to post more regularly, at least 1 article per month. I didn't write an article for more than a year! I was very excited and happy to start!
I decided to change the stack I was using. This small blog post is describing how I found the ultimate jamstack solution that works really well for me.
When I started going through my blog's source code I ran into a couple of problems.
Problem #1 - I had a hard time figuring things out. My blog was implemented with Gatsby, which is not a bad framework, but it does require some familiarity with the way it works before one can be productive. Apparently, I have lost that familiarity because it has been quite a while since I wrote anything.
Problem #2 - I really started to dislike my initial design. I am more inclined towards back-end technologies, but still, my blog looked really basic and old. I wanted to design it from scratch, and make it more minimalistic.
Refactor attempt #1 (fail)
Because of the fact that I didn't use React for a while (for almost two years I was doing everything using Angular), first I tried to find some jamstack technology based on Angular instead. After some research I discovered Scully, a static site generator for Angular projects.
It seemed to me that Scully doesn't have as many 'blackbox' mechanisms underneath as Gatsby does. It's almost like you use just Angular - there aren't a lot of things you should worry about.
I actually migrated my entire blog from Gatsby to Scully. But, unfortunately, as soon as I deployed my blog I discovered there were a lot of bugs present! 🐛 Fonts were not loaded properly (which wasn't the case during local development), links were flaky and not working all the time. Basically it was really bad.
When I went to the issues page I discovered that the project is not very popular and there aren't a lot of maintainers. Because of that I figured it's going to be easier to change the framework instead.
Refactor attempt #2 (success)
In my second attempt I wanted to choose a framework based on two criteria. A jamstack framework should ideally:
- not have a lot of magic behind it (so I don't forget the context like I did using Gatsby)
- be popular and well maintained (so I don't have the 'Scully scenario' one more time)
Actually, the obvious choice was not hard to discover. It was Next.js.
Next.js is not a pure jamstack framework and it's mainly used for Server Side Rendering. But it also has an option of Static Site Generation which is getting more and more popular. It's pretty straightforward, doesn't require a lot of context, and it's maintained very well. I just had to brush up on my React knowledge a bit, but that's just about it.
Anyway, I will not provide a how-to guide, there are plenty of those on the internet. I just want to give kudos to the Next.js creators - really good job guys! 👏👏👏 You have a star ⭐️ from me!
For those of you who are interested, my new blog is already active - just look around and see the design. If you want to dig into the code, here's a link for that.