Published on

The Perfect Stack

Authors
  • avatar
    Name
    Sedky Haider
    Twitter

So you have a project in mind, and you want to test it quickly. You're probably thinking about building some kind of SaaS.

Things you likely need:

  • Authentication / User management
  • Mobile / Web friendly
  • Dashboard of sorts
  • Costs little or nothing while you prove out your MVP

And here's some technology decisions that I'm going to make for you:

  • Managed database
  • Managed Authentication
  • Managed front-end
  • Auto-deploy where possible

Yes, we're going to use off-the-shelf, Cloud hosted solutions as much as possible.

I know it's fun to host all this stuff yourself, but by making this decision you're spending time NOT working on your product. In other words, you're setting yourself up for one of the most predictable paths to failure.

This stack is proven to:

  1. achieve web scale
  2. achieve it quickly
  3. achieve it cheaply

The Stack

Frontend: NextJs React

Backend: Express / Node (This one really doesn't matter, as long as you can Dockerize it)

Database: Firebase

Auth: Firebase

I'll provide you with starters for all this stuff.

Frontend

NextJS is an opinionated framework for React for building things quickly. It removes a lot of the guess work of things like Routing.

Furthermore, it has one-click GitHub integrations with complete auto deploys.

Get Started Repo

Database / Auth / Backend

Firebase. Firebase is a web-scale Google product which is virtually free until you hit many thousands of users.

It provides rich filtering, sorting, and can be strongly typed when mixed with Typescript as I'll show you.

Get Started Repo

In order to deploy this, we just need to Dockerize (using the built-in Dockerfile) and we're off. I suggest quickly setting up a CD workflow via commit hook that will publish your changes.

You don't want to be thinking about anything except the product; eat the upfront investment of setting this up to get it out of the way.