How I pick my tech stack for side projects

Drew Bredvick, next.jsreactside-projects
Back

Thought Experiment

We are going to start a business together, and we need to pick our tech stack. We need to choose something that will support our company for the time in which it is operating. Our goal is to build a successful product, gain users, and become profitable.

Overview

  1. Understand the business goals
  2. Understand the product goals
  3. Analyze your team’s strengths
  4. Design initial architecture
  5. Pick your tech stack

We’re going to dive into each of these areas, but here’s the TLDR (for me);

Businesses

Let’s take a look at some statistics before we start making decisions.

Only 30% of U.S. small businesses make it to the ten-year point, according to the Bureau of Labor Statistics.

https://www.bls.gov/bdm/entrepreneurship/bdm_chart3.png

Here’s the entrepreneurship data if you’re interested.

That means there’s a really big chance of us failing.

Why is that important? Well, it will keep things light when we get into arguments over framework abc vs framework xyz. At the end of the day, there’s a 70% chance what we pick doesn’t even matter.

I've written about tech debt and opting for speed when building new businesses.

What are we building?

We’re going to build a tool for developers to track their habits. Let’s assume we are going to start with a web app, but might venture into native apps in the future. We will need a front end for the website, likely static or server-side rendered for SEO considerations. We will need to build a back end API to support our app. Hosting and devops needs to be simple to manage.

Tech Requirements

Strengths

I’m good with JavaScript.

This is the most important part of building startups - pick something you’re comfortable with. You need to rely on your strengths.

I’m a full-stack developer.

Being full-stack will help a lot in the early days when our resources are limited. Later on, we will want to hire experts in different areas of the app to help it scale. For now, we want to move quickly and try to get product-market fit as soon as possible.

Initial Architecture

Here’s my best take at diagraming architecture using Instagram stories.

/images/now-nextjs-diagram.jpg

Tech Decisions

React

Read more here:

Why Next.js?

NodeJS

Next.js

We need a way to server-side render our React app. You can do this without a framework, but Next.js gives you a lot of nice things out of the box.

Vercel

If you’re using Next.js and want to move quickly, Vercel is the best hosting answer. Vercel is ran by the same team that made Next.js, so there are lots of great built-in features that make hosting simple.

Disclaimer: I am not saying that everyone should use React.

Conclusion

I’m making these tech decisions because they are right for me. There is no one-size-fits-all approach that will work. The important thing is to know your goals for the project, understand your strengths, and optimize for your developer velocity.

© Drew Bredvick.RSS