12
8 Comments

This Is The PERFECT Tech Stack For a SaaS Product

What is the PERFECT Tech Stack for a SaaS?
(...besides being the one you're most familiar with 😉)

In this video, I'll break it down for you!
🔗 https://www.youtube.com/watch?v=SUjTIX0a1PM

I'll also show you how to set it up.

....And! There's a little bonus for you 🎁
pssst... The bonus is a link to the template code of the entire setup!

I'd love to hear what you think?

  1. 11

    There is definitely some good advice here, and these choices can be great for spinning something up quickly. However with most services that offer opinions, they become unusable to run any real service:

    • GraphQL => It's over burdens development, using HTTP/REST comes out of the box with most frameworks, and using GraphQL on top is unnecessary complexity. Just dump this and your time of development with drop almost in half. GraphQL only does one thing well, and that's reducing the bandwidth required to send data back and forth. But if you don't have a lot of data, it's a waste to use this. (how much is a lot? >10MB per query request)

    • AppSync => This goes with GraphQL. It's terrible, it's a lazy and complex front end to deploy to API Gateway and Lambda. You can directly deploy to these and cut out a lot of the unnecessary build/deployment time.

    • Pulumi => Pulumi is great, much better than terraform and other Infrastructure as Code solution, but if you are deploying a service, you can put all of this in already existing cloud formations stacks that will do all the work for you out of the box (some people may mention Serverless, or CDK, you can use them, but they are terrible) It only takes a couple of lines of code with something like this library or using this template to deploy your stack

    • Aws Amplify => Eww, this has exactly the same problems as AppSync, it is just a lazy, and complex UI to deploy to S3 + CloudFront (static host + CDN) you can deploy easily to these by using the underlying stack.

    • Cognito => There are so many wrong things with cognito, that had to write a full article to capture all of them: All the issues with Cognito

    • Typescript => It's much better for ease of delivery than others, but if you are copy and pasting things or don't have a lot of experience with typescript go with javascript instead. It's much easier and doesn't have the unnecessary guardrails that will slow you down.

    The perfect stack is the one that you can deliver what you need in the time you need with money you need to, generally speaking this is:

    • DynamoDB, Lambda, API Gateway, S3, CloudFront, Route53 (for DNS).

    If you need login, that's actually going to be a complicated story, Cognito has no long term viability for a production system, but it also only works for B2C solutions. If you have needs for B2B, you need to go with Authress or with WorkOS. And if you need B2C, then you'll want to review the recommended list of providers for the space.

    1. 2

      Agree 100% 👍

      My serverless stack is:

      • Node + React
      • DynamoDB
      • Lamba + API Gateway
      • S3 + Cloudfront + ACM
      • Route53
      • Kinesis

      Almost zero frameworks apart from the Node modules, and deploy to AWS via a reusable CI/CD build script.

      I haven't yet found a replacement for Cognito though, I'll look into Authress and WorkOS, thank you for the suggestions.

      1. 1

        100% although we used vue, and throw in WAF, SQS, and most importantly Step Functions. Those are awesome!

  2. 9

    I get where you are coming from, but when building a startup you have to move fast. If I had to learn GraphQL and various other APIs I would be wasting a LOT of time on just learning.

    TL:DR: The perfect stack is the one you have the most experience with.

    I don't know if you edit your own videos, but the editing was on point!

    1. 3

      Yes, I totally agree 😁
      And hands down: The title is meant to bait a little.

      That said, I personally would use this tech stack for... yeah, almost everything.
      But if you're completely unfamiliar with it and have to spend a lot of time learning it, it's pointless. Fully agreed.

      And thank you 🤩
      Yes, I do edit my own videos.

  3. 3

    I really like your first point from a technical perspective - "starting a new business/sass is the worst occasion to learn something new".

    Couldn't agree with this more since you won't have to think about how you're building it but for who and why.

    However, in reality, probably everyone will learn new things down the road but reducing the amount where it wouldn't be necessary definitely should help. 👌

  4. 2

    I personally think any stack fully based around Javascript is a good choice, because you only have to deal with one language and one ecosystem. If you are already building your frontend in Javascript, might as well build the backend in Node, it comes very naturally.

    For the database I think a NoSQL database is a great choice to ensure it scales without any problems. In my case, I'm in to Angular, Node and Firebase for my database, it's all Javascript-based and very use to put together.

    1. 1

      Yes, totally agree with this!

Trending on Indie Hackers
How I grew a side project to 100k Unique Visitors in 7 days with 0 audience 49 comments Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 29 comments My Top 20 Free Tools That I Use Everyday as an Indie Hacker 16 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments