I recently decided to take on a brand new personal coding project. A lot of my recent work (my current gig included) has been writing web frontends in React. That said, my current project isn’t super demanding in this regard, so I figured it might be a good idea to try and build a new application from scratch to get a handle on what’s involved and develop a better sense of how to architect a React application.
So I set up a brand new GitHub repo, created a folder in my WSL install to host my local code, ran
npx create-react-app and got the sample React app to build and run. Fantastic. Time to add a backend. Node.js should work just fine for what I need, so let’s go with that. Got it to build and run – awesome.
So I have frontend and backend code in the same repo. Time to impose some order on this pile of stuff – I move my client code into a new client directory and the barebones Node server I created into another one.
And now, for some reason, neither part of my application will compile. Alright, no problem. Let’s debug this.
At which point I freeze and realize:
I know nothing about how a modern build system for React or Node is set up, let alone how to debug it.
Come to think of it, when was the last time I set up any sort of build system for anything? At most places I’ve worked, my code was a few folders in a monorepo whose build was set up and managed by an entire other team of engineers, who also managed the whole CI/CD system. I may have fifteen years of industry experience, but it’s been a long time since I’ve had to set up a brand new application by myself.
Yes, this little project is going to be much more educational than I anticipated…