Step-by-step tutorial to build a modern JavaScript stack from scratch
I feel like the people complaining about how many libraries there are in this stack don't know what these tools do. Most are small tools that do one thing very well.<p>Yarn installs packages, much like Gem, NuGet, whatever. Pretty standard.<p>React is a frontend framework. Not surprising that you'd use one. I suppose you could opt to write a giant pile of vanilla JavaScript instead (I'm assuming you're <i>not</i> using this kit for a simple webpage, which would be silly. We're building a web <i>app</i>, right?)<p>I'd dare to compare Gulp + Webpack + Babel to your "compiler" in a way. I'm a little lost at why we're using both Webpack and Gulp though. Babel is a necessary evil to ensure we're "cross-platform" in a manner of speaking. These are probably your most "unnecessarily complicated" tools.<p>ESLint and Flow check your code for obvious mistakes. Reminds me of IntelliSense and compiler warnings. Again, pretty standard stuff.<p>Mocha is a test runner and Chai is an "assertion library". Chai isn't a big deal: expect(foo).to.equal('bar'); Simple stuff.<p>Feel free to scoff at Redux and Immutable if you'd like. Probably unnecessary.<p>Am I the only one that likes this ecosystem? I feel like it follows the Unix philosophy of "Make each program do one thing well". You need almost all these tools in other environments -- they're just typically chosen for you in advanced.