This is going to sounds like crazy advice, but having worked on many side projects in my life the last thing that's going to let you down is your skills. What you really need is time. Let's say it takes you 400 hours to build your project -- in those 400 hours, you will build up enough skills to get you started (not nearly enough to be good at it, but good enough). So you need to work consistently 1-2 hours a day on…
> So you need to work consistently 1-2 hours a day on your side project. I would underline this consistency. I found that as long as I'm regularly doing even the tiniest of improvements to my side-project, I am very efficient over the span of a few months. When due to other obligations I drop the habit, I start forgetting how parts of the codebase work. It becomes harder to restart the project and the whole thing jus…
If I have a small block of time (1-2 hours), I try to make 2-6 really small commits, so there is always progress.
If I have a larger block (4-6 hours) I try to build out a feature so it just works, just working on things that require that amount of time (leave all the short problems for later).
I found this also affects my decisions about what tools I use and how the software is designed. E.g. using npm libraries for UI components that are "good enough", which I might be tempted to start from scratch in a work environment. I also intentionally built an application that is easy to manage - no user accounts means no database to pay for / migrate / monitor.
I'm using Heroku to outsource monitoring/logging, and Aweber for email. Paid tools can be cheap compared to the time it would take to replace them, and if you don't pay for one of these, your side project turns into building those products as well.