Ascent

Choosing a Stack for Your Side Project

Selecting a stack is the first technology decision in a side project. Unfortunately, it is also one of the biggest factors in determining whether or not your project launches.

This is not because there are right or wrong technology choices. All widely adopted technologies are different flavors of good. The chances of success vary so widely because the techs we can choose fall into 2 categories: techs we know and techs we don't.

We are all attracted by the techs we have no experience with. Fresh codebases are a great place to learn something new. There is no danger in the stack not working. No deadlines to miss if your project doesn't ship fast enough. A fresh codebase is the beach we built sandcastles on. It is a risk-free playground.

But we aren't here to play games.

Serious projects must have a singular goal. When we start a new project, we face two competing objectives we must choose from: learning new techs or shipping a product. You may choose one. This may strike you as needlessly harsh. It isn't.

When i was building detextion.io, i was tempted to try some new techs. Django supports Python 3. That would be fun to try. Maybe it was time give Rust a whirl. It's fast, after all. I could even see how far d3.js has come and build some swanky graphs no one will ever use!

I chose not to do any of these, as interesting and educational as each might have been. Had i tried them, i can tell you the lesson i would have learned: learning a new tech is like dragging a plow. Shitloads of work and no fruit for your labor.

Remember that momentum is critical to a side project. Learning a new tech, while fun, is fraught with stumbling points. It is not realistic to think that you will achieve both in the same project.

If your bigger goal is to launch your project, pick familiar techs.

But most of us have been in the industry long enough to have an extensive list of familiar techs. So how do we choose from those? Simple: choose the stack you enjoy the most. Barring edge-case circumstances where a tech you know is uniquely qualified in the problem domain, like python in natural language processing, the best tech is the one you like the most.

The reason for this comes back to momentum. Enjoying your stack, and the tools you are using to build a product is directly related to the likelihood you complete that product. The more you like it, the better your odds. Every decision you make about building a project needs to help push you towards that end: increase momentum.

So choose the techs that make you happy. Choose a stack that you will enjoy working on even when you are fighting with a problem. Finally, choose a tech you know. The less time you spend on google and stack overflow, the better your chances of launching your project.

tl;dr: There are no wrong choices for your side project's stack. But there are bad ones. This is how to pick a good one.

Building great products is hard. Let's get better at it.
Author image
Written by Ben
Denver, CO https://benroux.me
VP of Engineering at MeetMindful. Have feedback or questions? Want to chat? Send me an email.