Starting a New React Application in August 2018

The React ecosystem has become a fantastic tool set for developers on the front end. It has come a long way in the last five years, and for the most part it's a lot of fun to work with.

I still remember my first experience with it and how enjoyable it was to build a web application. I never built anything super complicated but it mostly just worked.

I've kept mostly up with the ecosystem since, but this week I started working on something in earnest. The most visible change over the last 18 months is the degree to which Redux, and the associated tools for Immutability, Sagas, Selectors, etc. have all found their way into the boilerplate. create-react-app remains a good basic starting point, but most boilerplates include a lot more. It's very easy to get caught up in the heavier structures from day one, because of course my application needs to scale, and be out at the bleeding edge (it doesn't).

Each of these things however requires time, and a contextual framework to learn how they connect together. Each a layer of abstraction on top of another. It's probably worth revisiting Dan Abramov's advice on this, basically don't use this until you need it, because you might not.

Setting up your project however is one of those things that everyone seems to spend a lot of time on, it's kind of like finding a place for everything in your kitchen. Just remember that it's actually not the most efficient use of your time. You are going to pay maintenance and upkeep costs on your code base no matter what. it's unlikely that you are going to save much by having everything perfect from day 1, so why not take advantage of the speed of a "sketch" to prove out some ideas. Sure you will have to go back and add whatever the latest tool in the ecosystem is at some point anyway, but let's be honest, in an ecosystem changing this fast you were going to need to do that anyway.