- Published on
The Perfect Stack
- Authors
- Name
- Sedky Haider
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:
- achieve web scale
- achieve it quickly
- 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.
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.
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.