My intention was always to have a playground hosted somewhere, and try technologies that I couldn’t use in my day-to-day jobs.
So I picked Gatsby when I was writing Angular to experiment with React. Wrote my first CSS-in-JS with styled-components and then emotion.
Tried SVG animations, learned the basics of CSS-grid, went overboard with postCSS plugins (wrote two plugins myself!), and more. Whatever felt interesting at the time.
Lately I've stopped experimenting that much, apart from trying different layouts. I've redesigned the blog two or three times but I didn’t change the framework.
Working with markdown is fantastic. There’s a plugin for everything, simplifying any configuration. I didn’t have to overthink about adding an RSS feed or embedding a tweet. I can write my content and call it a day.
Its image handling process is also top-notch. Lot’s of options with great documentation too. I'm unsure if I'm shipping a ton of JS but the dev experience is great.
Other than that, it just spits out some HTML + JS and you can host it anywhere. It excels in simplicity if what you’re building aligns with its happy path.
Unfortunately, what I loved more about Gatsby came back to bite me. Too much reliance on its plugin system.
As it stands, I’m blocked from upgrading to v4, because some community plugins haven’t been updated. That said, I have no issue with this. It’s free work from the maintainers after all. They were working when I was lazily benefiting from their work. But it still irks me, because I can’t contribute to fixing it. The GraphQL pipeline is so daunting that I didn’t bother much.
I can replace the plugins, but the problem is still there, I have no real control over the process, and as Gatsby keeps getting more and more irrelevant (see alternatives below), it will happen again.
Naturally, I’m thinking about what every bored developer thinks on vacations. Rewriting it all.
I’ve been battling against these thoughts for a bit now. There are two contenders. Remix and Next.js.
Next gives me almost everything I want. It’s a very mature product, improving all the time, and has a buzzing community. I’ve used Next.js professionally, as well as for some side projects of mine.
Here are some people writing about their experiences migrating from Gatsby
There’s also a lot of work on the Markdown processing and syntax highlighting, as Gatsby does some clever optimizations that I can’t properly replicate.
I’m also using Netlify for hosting, so some features like next/image won't work. This opens the can of worms. I either change the platform for a single site (I maintain 12 sites on Netlify) or bring another dependency in the name of Cloudinary.
Other than that the skeleton can stay the same with some small adjustments in SEO and RSS handling.
Still, not convinced that it’s an upgrade. I love Next.js when building a pseudo-full-stack application, but it is a sideways move, without great benefits. If anything it creates more issues.
The hottest technology in the React ecosystem is undoubtedly Remix. I even created an issue in my repo to migrate to when I first read the documentation.
My concerns are similar to the ones of Next.js, with the addition that it’s very very new and I prefer if someone else slays the dragons for me. If some clever person, builds a tempting skeleton that does 95% of the job, I might consider it, but I don’t want to buy into the hype.
After some thought, I’ve decided to stay with my current Gatsby setup. The change is not worth it. The framework works, there are no glaring performance issues so far, and I’m honestly burned out and disinterested to pursue a migration.
So yeah, this will be my setup for a while. Will keep tabs on both technologies for reference, but for now I assume that this blog's stack is complete. A v4 upgrade would be nice, but from a glance, it’s mostly improvements if you’re vendor-locked. Which seems to be more and more the case nowadays.