So you’ve been doing REST APIs for the past 5 years. Or perhaps you’ve been optimizing searches for your company’s gigantic database. Maybe writing the embedded software for a microwave oven? It’s been a while since you were rocking some Prototype.js to do proper OOP in the browser. And now you’ve decided it’s time to get up to speed with your frontend skills. You take a look at the landscape and it looks like this.

Of course you’re not looking for Waldo. You’re looking for 25 random guys and don’t even know what their names are. This feeling of being overwhelmed is so common in the JavaScript community that the term “JavaScript fatigue” actually exists. When you have time for some comedy about the subject, this post reflects the phenomenon brilliantly.

But you don’t have the time for that now. You’re in a giant maze, and you need a map. So I made a map.

A little disclaimer first: This is a cheat-sheet to get you up and running fast without having to make too many decisions by yourself. Basically I will be laying out a set of tools that just work together for general-purpose frontend development. This will get you comfortable with the environment and will save you a few headaches. Once you’re done with these topics, you’ll be confident enough to adjust the stack to your needs.

Structure of the map

I will divide the map into problems that you’ll need to tackle. For each problem, I will:

Package management

JavaScript flavor

Transpiling

Linting

Bundling

Testing

UI framework / state management

DOM manipulation and animations

Styling

About Boilerplates

Boilerplate projects like Create React App can lift some of the burden for the problems described above. When using a boilerplate, you still need to understand what’s going on under the hood — otherwise, you’ll never truly have ownership of your build.

That’s it!

You now have a metric shit-ton of stuff to study, but at least you won’t need to spend so much time doing research. Do you think I missed something? Did I drop the ball somewhere? Leave a comment or reach me on twitter @bug_factory.

EDIT 1: Corrected link to the post about JavaScript fatigue (thanks, Chris Woods!). Added notes about how other languages also need transpiling (thanks, Ignacio Rossi!). Added Jest to the list of alternative testing tools (thanks, Tiago Pina and Chris Khoo!). Added section about styling (thanks, Tinkerer!). Thank you all for sharing and sending in your feedback!

EDIT 2: Improved section about jQuery (thanks, Eldar Shamukhamedov!)

EDIT 3: Replaced Mocha with Jest in testing section.

EDIT 4: Added note about boilerplates.

Hacker Noon is how hackers start their afternoons. We’re a part of the @AMIfamily. We are now accepting submissions and happy to discuss advertising & sponsorship opportunities.

To learn more, read our about page, like/message us on Facebook, or simply, tweet/DM @HackerNoon.

If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!