We have new frameworks rising every week. And we have companies asking for 2, 3, or more years of experience in them (wtf).
But that is not the problem here.
The problem is there are no standards.
Or, at least, not enough.
Of course, you could go and use Angular and have a pattern for the project. But let's focus on the most used technologies in the life of a typical front-end developer. Let me give you a quick list of things good to know:
- Typescript (obviously)
- Next.js (and you should start checking the following changes in Next.js 13)
- A UI Kit would be fantastic; maybe Chakra UI, MUI, Mantine…
- Some testing systems, like Cypress
Now, with that, you have the basics. You could even use only Tailwind and not a UI kit.
But, it is good to learn more alternatives. For React, you want to explore also Vue. For Next.js, you could explore Remix.js. For Tailwind, you could use CSS modules or maybe integrate Tailwind Elements and use Tailwind more like a UI Kit. For the UI Kit, you have dozens of alternatives and, inside of them, different themes and sub-libraries based on them. And so on.
I won't say alternatives are inadequate. I love testing new tech every weekend. So it is not harmful to have different ways to achieve the same, like using Tailwind classes, a UI Kit component, or plain CSS inside a CSS module.
This is a cool thing to do for a front-end developer with a few years of experience.
But newcomers and juniors will feel overwhelmed with all the options. And when they start exploring one and decide to switch to another one, they need to learn a different pattern to develop there.
And let's not talk about every NPM library being developed differently.
I like options. But I don't feel like the solution to a problem is to create a new library. At least not always. Maybe you can contribute to one of the open-source projects and implement those solutions there.
But I am interested in hearing you, the reader, and my fellow devs. What do you think about the current and future state of the frameworks and libraries?