*This post was first published on my blog.
*Please note: This is the perspective of a web developer wanting to go freelance right from the beginning and not planning to get a corporate job.
- How I got started
- The benefits of Gatsby JS
- Why you also might want to move on
- What's next?
Coming from a self-taught background, I got started, like so many others, with FreeCodeCamp. It is in my opinion the single best resource to get your journey started and although many other resources have come out in the meantime, I think it is still the best.
However, while I was doing FreeCodeCamp I had already started developing my first couple of WordPress websites. In the end, this combination proved good, as it taught me all the basics I needed to get started. But I soon grow discontent with WordPress and its long loading times and lots of other things.
I was wondering whether there is something I had missed in my FreeCodeCamp journey. Back in the day, the curriculum still consisted of only HTML, CSS, JS, and some backend certifications, but I wondered how do I now actually create a website for let's say a bakery around the corner?
I was reading lots about React on the internet, but FreeCodeCamp didn't have anything React-related in their curriculum at the time. So I started going onto Udemy and searching for tutorials there.
Eventually, I settled for "The Complete Web Developer in 2021: Zero to Mastery" by Andrea Neagoie. Thought through and well structured 40 hours on-demand video course that filled in all the gaps that FreeCodeCamp had left me with.
It helped me to get familiar with React file structure, JSX, the idea of component hierarchy and so much more. But again, i*n the end, I had one more project on my portfolio, but was left wondering*, is this how you create a "normal" website if a friend reaches out to you and needs you to code up something simple?
And that's where I found Gatsby JS. After searching for ways to reduce WordPress loading times and how to make "normal" websites with React, I came across this thing called "Jamstack".
And a day and 2 youtube videos later, I was following the Gatsby docs to set up my first Gatsby starter and browse through the numerous Gatsby files.
Immediately, I was hooked.
At first, it was a bit daunting to grasp was gatsby-node.js and gatsby-browser.js APIs meant, but with the huge community and the library of starters, it was just trial and error. The thing that every developer goes through when learning new technologies, right?
Gatsby offered everything that I liked from WordPress development and more! With Gatsby's theme library I was able to peek at other people's projects and built on top of their themes just like I would have in WordPress. But only this time, I could code in React.
On top of it, hosting small Gatsby websites on Netlify with continuous deployment for basically free, blew me away.
Previously it had always been: "Host your WordPress website for only 5$/month". But now, instead, I was able to decide when to "publish" changes without immediately showing on my site like I had to with most of my WordPress clients.
And what shocked me most, how easy it was to get high ratings on Google's Lighthouse Tool for performance as well as SEO. Something that many clients cared about a lot.
I now started to create websites with React and Gatsby instead of WordPress. I felt like I was more in control with less setup and could still give my clients access to their content through headless CMS easily. The best of both worlds.
So why would I want to move on from Gatsby as it has made my developing experience so much better? Well, things on the Internet, and especially some of my views on web development have changed since I got started with Gatsby. Gatsby is amazing, but it is definitely not the right answer to all static sites.
The competition in the SSG (StaticSiteGenerator) field has become stronger each year, so much that things that used to be unique to Gatsby like effort-less image optimization and SEO have since been adopted by others and make it more difficult to argue why you should go with Gatsby.
My clients' websites also have increased in size and often get updated which makes the build process with Gatsby quite tedious. There are ways to improve build times, but what about the J*avaScript and JSON bloat that gets shipped with every Gatsby site no matter what size*? Now some people will say that with the bloat come configured lots of Gatsby greatest advantages. But what if did not need or want them? I don't have the option to turn them off.
Nowadays, I go for Gatsby if it's a site that needs to be set up quickly, is fairly small in size, and can perhaps be created by using one of the many starters that I have set up for myself in the past.
The plugins that come with Gatsby are also generally great, especially for people getting started, but you might catch yourself later thinking: "Why am I googling whether there is a plugin, again? Shouldn't I maybe try and code this myself?.."
Gatsby is just too convenient.
From once being amazed by all the things that Gatsby provides you out of the box, I now often question myself if I really understood the concept of what I implemented or whether I just "copied and pasted".
I have mentioned the growing competition that Gatsby (and React in general) is dealing with and some of the competitor's approaches are quite different and worth looking at.
I think a developer should always strive to learn more and not only deepen knowledge, but also accept that technologies sometimes change completely and as a developer, I might have to revise what I thought was good yesterday, but might not work anymore tomorrow.
I know the React team and the Gatsby community are working relentlessly to improve every day, but I increasingly have a tingle in my fingers that tells me to step out of my comfort zone and try out something new.
One topic that I have come across, again and again, is Svelte with Snowpack. Getting rid of the bloat from React and offering an even better developer experience, seems very promising.
It's currently used by sites like the New York Times, Spotify, Ikea, and Chess.com. These are some really big players that seemed confident enough in Svelte to take the plunge! So this is something I definitely want to try out in 2021!
The other probably more popular choice is VueJS. Becoming very hyped over the last few years, I think we all should at least dabble in the "Hello World" starter and see for ourselves if the hype is justified.
And this is one of the many reasons I love web development. The community strives to challenge each other and constantly introduces new and potentially better concepts. Always on the hunt for a better approach for developers and users.
What will you learn in 2021? Will you also leave your comfort zone and see what else is out there? Let me know in the comments!