On a surface level it makes a lot of sense. The last several years have seen a massive shift in the way front-end development works. Frameworks, bundlers, transpilers; even a massive update to the language itself. Still, the biggest impact has come from npm: now the largest package registry in the world. How on earth are you supposed to choose which packages you want from the 350,000 available to you? How do you choose between the handful of build tools and dozens of frameworks? Why isn’t there just one best tool?
There are a lot of tools and frameworks to choose from but that’s a good thing. The world wide web is the largest and most variable platform there is. There never will be a one-size-fits-all solution, and that just comes with the territory. I’m sorry. Web development is hard. It’s also very rewarding.
Okay, if number of packages and choice paralysis isn’t the problem, what is and how do we solve it?
I think the solution comes in two steps, and following them will make the web better for developers and the people using it.
1. Ask the right questions
This one is for the developers of sites and apps. Make sure you’re asking questions that will improve User Experience, not just Developer Experience. Don’t get me wrong, DX is important but it should never trump UX.
2. Give the right answers
Now for the tooling and framework authors. I’m assuming you’ve already asked question one, and you’re making something that solves a problem. But, to make informed decisions, and great experiences, developers need more information. The good and the bad. What are the aims and what trade-offs does it make.
A great example of this is the Inferno README. Although requiring some React knowledge, it explains the user-focused philosophy behind the project. It even goes into the differences between it and other similar libraries.
There’s no one correct way to build for the web, but there are some good questions to point you in the right direction.