How to pick a frontend framework
When I was just starting, the choice seemed pretty simple for frontend development. Angular, React, and Vue always seems to occupy the top positions in Web Developments’ Greatest Hits (feat. Pitbull somehow) as the top frontend frameworks.
However, the choice goes deeper than just those three. As I progressed, I bumped into the Gatsbies, the Nuxts and the Nexts. They all can do their unique party tricks, and being able to choose appropriately can avoid a lot of headaches when developing websites and apps.
Some advice here is applicable to all kinds of programming tools, but this article will be focusing primarily on Frontend JS Frameworks.
Popularity is important
Listen, I know you still have PTSD from high school but hear me out…
Popularity means greater chances that a particular tool will be present in a higher number of projects and, therefore, there will be a lot more transferable knowledge you can keep throughout your career. In certain cases, there are even topics that you can use across multiple frameworks.
For example, Gatsby and Next both emerged from the popularity of React! You might even be able to identify specific isolated methodologies or patterns that occur in multiple very different frameworks. Besides, understanding those patterns indicates what patterns will likely be more critical/reusable throughout your career.
Generally, choosing a popular framework guarantees you will have more support options for that tool. It means that the creators of those frameworks are more likely to keep them up to date and create better documentation for them. It also means more plugins/extensions and a more extensive community around it with whom to learn from.
From a professional standpoint, all this means that there should be a higher search in positions requiring knowledge of these frameworks. Thus, it is easier to compensate for the challenge of learning a new tool with job security.
Developer experience in frontend framework
Everybody talks about User Experience, but what about Developer Experience?? We have feelings too!! At least the minority of us are not completely dead inside or have not completed the machine-thinking assimilation process.
You might have heard this and that about a certain frontend framework; you might have checked out their website, and their homepage looks great; maybe it’s very popular and has great resources, but does it feel right to you? The only way to truly find out is to get your hands on it, start following tutorials and build a mini-project.
Consider these questions.
There is a lot of nuance with these kinds of things. Do you like the philosophy behind the tool?
Some frameworks are jacks of all trades but master of none, while others are targeted towards very specific goals. Do they align with yours?
What about the most basic parts of working with code? How do the frameworks change that? Does it have an impact on readability? Do you like how logic and presentation concerns are separated? The file structure of projects? The details behind what you experience when you use a framework are really limitless, and it’s really up to you to figure out how that affects your experience.
Rendering is also a factor
Different rendering paradigms have significant impacts on web apps. The general division exists between Client-side Rendering (CSR) and Server-side Rendering (SSR). Between those extremes, there is a whole spectrum of different techniques.
In general, SSR rendering should be better for apps that frequently update, like social media sites. In contrast, pure CSR methods won’t allow for that kind of updating. Unfortunately, SSR also tends to be more expensive, both in development time, due to configuration, as well as server demands.
There are also in-between approaches like Reacts’ hydration process and…
Speaking of which! Whether or not your rendering method produces static pages or a is also something to look into since static pages are more SEO friendly and thus are better suited for Digital Marketing, which is why I’m leaving behind.
Unless I’m developing something like a back office where traffic won’t be measured, I would consider Gatsby, a frontend framework I already use frequently and really dislike several aspects of it.
My next logical step seems to be Next.js. I am really looking forward to trying it out, and I hope this article helps you find your way too. Farewell!
Originally published at https://angry.ventures on December 9, 2021.