I have built 50+ products over the last 9 years for my own company, for companies I worked at & for clients.
Here’s my take on how to choose the right tech stack for your next product.
1. It has way less to do with tech than you think
No one tech stack, programming language or framework is THE BEST for solving a problem or building a particular kind of product
So, it all comes down to the others things covered below.
2. Find an existing solution that you can build on top of
If you don’t need much customisation, use a low-code tool like Bubble.
If you’ve decided to build from scratch, see if there’s an existing open-source project that you can use. Example: If you’re building a community, you can use Forem.
3. Choose the tech that you or your team is most comfortable with
For instance, I always prefer using Ruby on Rails for all web dev projects since I have used it the most & know well the nuances, how to quickly find something etc.
4. Choose the tech in which finding talent won’t be hard
For instance, Elixir is amazing & has its advantages over Ruby. But you will have tough time to find good developers who already have experience with Elixir.
5. Preferably choose the tech that has a mature ecosystem or at least has a great community
I would stay away from frameworks or libraries that aren’t updated frequently or have only been recently released.
6. Minimise the # of variables you need to manage on your own
For instance, rather than building my own custom form, I would embed Typeform.
I’ve been using Typeform for 2+ yrs at Remote Tools now since it would take me months to come close to such an interface.
7. Deployment & server management is tricky, use a out-of-the-box solution as much as possible
I want myself or my team to be coding business logic for most time, not fixing unknown server issues. So, I always prefer Heroku or Netlify over custom server setup.
8. Domain management is more important than you think
Issues like SSL, forced https redirects, managing subdomains, CNAME flattening etc. are an absolute pain.
Use Cloudflare from the start (can’t recommend it enough) – it’s easy & provides amazing customisations.
If you prefer reading the above post as a Twitter thread: