24
67 Comments

What's your SaaS tech stack of choice?

What tech stack would you use to build a SaaS in 2020/2021 ?

posted to Icon for group Developers
Developers
on May 26, 2020
  1. 15

    If I were starting another bootstrapped SaaS, I’d choose Rails (again). We started Honeybadger on Rails 8 years ago and I attribute a lot of our success to it. I’ve had the chance to work with many different stacks, and so far I have yet to find an ecosystem that is so uniquely suited to SaaS builders (Laravel is a close second). Use a starter template like Bullet Train or Jumpstart Pro for a big head start. Rails may not be hip anymore, but nothing will get you to market faster in my opinion.

    I can only post one link since my account is new (upvotes appreciated ;)), so lots of good stuff here: https://awesome-ruby.com/

    If you have any Rails questions, feel free to ask.

    1. 2

      I'd second and highly recommend this path. I'd also add - avoid incorporating JS as much as possible. That will definitely make you move faster.

      Yes, sometimes it's necessary to reach out to JS, but it many cases, the good old monolith generating HTML on the server will carry you further.

      p.s. In addition to awesome-ruby.com, I'd add ruby.libhunt.com (one of my projects)

    2. 1

      Hi Josh, another Rails user here. Think the same.

      What's your experience after 8 year upgrading rails? Had any problems with dependencies?

      What else and how are you structuring for your system? (I'm specifically interested in that)

      My current project is quite small, and just use a small VPS, but I'm interested on how people do with bigger projects.

      1. 2

        Upgrading Rails is always a challenge, but it hasn't been too bad for us. Our app is not huge by Rails standards--I also own a Rails consulting company where we do a lot of Rails upgrades, and we've seen some massive applications where upgrading can be a multi-month effort. Another benefit of staying small--everything is easier to maintain. :)

        Unless your app is big enough to have 2+ small teams working on it, upgrading can usually be accomplished in a few weeks or less in my experience.

        1. 1

          Good to know :)

          I share this very concept of staying small.

    3. 1

      I feel the same about Laravel. Years of experience with Laravel might be skewing my opinions on this but I just cannot get the speed of development and the stability from anything besides Laravel. Though now I am tempted to give RoR a try on my free time.

      1. 2

        Makes sense! I'd say if you are already comfortable with PHP and/or Laravel, then go Laravel. If just starting out I still recommend Rails, but tbh both frameworks and communities are great for indie hackers. I personally prefer Ruby to PHP (did PHP for years), and the Rails ecosystem is so well developed.

  2. 8

    React, tailwind css (it's recent), with serverless, hosted on netlify and mongodb.
    Stable, scalable, open source, huge community.. and free hosting 😉

    1. 1

      That's a nice stack, will be using it for my current project!

      1. 1

        we've created a marketplace for those kind of stacks https://www.fullstackrocket.com

        And we are looking for authors if you are interested ;-)

    2. 1

      Where do you host mongo?

      1. 1

        I host it on digital ocean

        1. 1

          Hopefully a cluster and not a single insurance?

          1. 1

            Single instance actually. My usage doesn't justify the cost of a cluster.

      2. 1

        Mongo Atlas if I had to guess :)

        1. 1

          indeed, mongo atlas, 500Mo for free ;-)

  3. 4

    Python(Flask), React, PostgreSQL
    I created a SaaS boilerplate based on this stack and have several mine and private clients' products built using it.

  4. 3

    Clojure/Clojurescript.

  5. 3

    I am planning to use python, django, postgresql, with the Bulma css library.
    Python is easy to get started with, and I'd recommend William Vincent's (3) books if you're not familiar with django.

    Where my B2B SaaS requires organization information "silos" and subscription payments, I opted for a "pre-built" django template, with those features built-in:
    SaaS Pegasus - https://www.saaspegasus.com/

    Does anybody else have any experience with hosting on Digital Ocean using the "build your own PaaS" CapRover project?

    1. 1

      I'd love to hear your opinion about Pegasus. It's looks too early stage

    2. 1

      I do :) I run caprover on a €40 digital ocean droplet where I host my databases and multiple Django apps.
      For my production I prefer hosting them on GCP however where I never have to worry about occasional load

  6. 2

    Wanted to go with Node.js using Sail.js framework, which was fun and fast to build on.

    But then I switched to Laravel because it has a bigger support community and I am better at PHP haha.

    The more I get into Laravel the more I see how useful it is for starting off and scaling, it's really well made and has all kinds of tools ready for you to grow with it.

  7. 2

    I’ve been building imprint.to, a blogging platform that combines the audience and simplicity of Medium with the control of Wordpress. My full stack costs me around $15/mo.

    Frontend hosting: I’m running a Next.js app on a Heroku hobby dyno. $7/mo

    Backend hosting: I’m hosting my API and reverse proxy on a DigitalOcean droplet running Dokku. $5/mo

    Domain: I’m paying for a .to, which is a bit pricier at $40/yr, or $3.33/mo. If you get a more standard .com, .net, or .co, it’d boil down to $1/mo.

    Transactional email: Mailgun for sending and receiving emails from the imprint.to domain. Free for first 5,000 emails

    File storage: AWS S3 stores all images, videos, assets. Free for first 5GB.

    CDN and image transformations: AWS Cloudfront provides the CDN for all my S3 images. Also provides on the fly image transformations. Free for 50GB of data transfers

    Database: MongoDB Atlas has been super reliable, and I’ve had no problems hosting my MongoDB/NoSQL database here. Free up to 2GB storage

    Error Logging: Sentry. Free for 5k errors

    Search infrastructure: Algolia saves so much time in both building a UI for a search bar and for the underlying search functionality. Free for up to 50k operations and 10k records per month

    Analytics: Google Analytics is informative, and totally free.

    And this should all scale up, at a similar price, for AT LEAST the first 5,000 active users.

    Wrote more about this + tips on saving money here: https://roland.imprint.to/post/build-something-for-less-than-the-price-of-a-netflix-subscription

  8. 2

    I use Django for the backend
    Preact for the front end as an SPA
    Graphene (grahql) for the data transportation layer
    Host on GCP app engine

  9. 2

    I use Vercel, Next.js/React, and Firebase for Letterbase.

    1. 1

      How do you like this stack? My background is mostly frontend (React and friends) and I'm planning to use this same stack deployed serverless for my next project.

      1. 1

        I like it a lot! Really easy to get started with, and probably the friendliest stack for a front-end engineer. Also cheaper than most alternatives, at least in the beginning.

        1. 1

          I've got a look at firebase a long time ago, and it was kind of intrusive, I had to put some firebase scripts in the frontend. I would love to hear your opinion.

          1. 1

            I use Firebase Auth and Firestore and haven't needed to add any scripts. I just use their npm packages. Don't think it's any more intrusive than using any other database.

    2. 1

      Same stack for my project! I'm only using Firebase for auth though - PostgreSQL is my DB of choice.

      Also using Typescript and TypeORM.

      Redux with React Hooks and Typescript is a dream!

      1. 1

        We've moved from redux to apollo graphql and for me it's the best move we've done. Redux / redux saga was really messy to use.

  10. 2

    So, I'm actually working on a SaaS starter kit called Nodewood, which means I'm pretty opinionated on what I think is a "good" stack. I highly value the following things:

    1. Reducing the time required to launch your first version.
    2. Reducing the time and complexity involved in maintaining and updating your app.
    3. Providing the flexibility to grow your app in unexpected directions.

    Starting with the second point first, I think one of the biggest wins here is using the same language for the back-end and front-end. This means you can use the same libraries (both first- and third-party) through all your code, reducing code duplication and maintenance burdens. Given that browsers all run Javascript, this means using Node on the backend is a huge win.

    I've chosen Express on the back-end because it is tried and tested and simple, and Vue/TailwindCSS for the front-end because it is far simpler to get started with as a small or single-person team than the alternatives. I also use PostgreSQL, as it remains the simplest, most-solid database with the least surprises.

    All that said, if your idea is very clear and well-defined, and doesn't require much or any custom coding, you could do very well with a Nocode tool! Entire successful businesses have been built on what are essentially customized Airtable spreadsheets, so it's definitely something you should consider.

    All-in-all, what stack is best for your business is going to rely largely on your business goals and expected complexities.

    1. 1

      Hi Dan, nice stack and website! We've made a marketplace for those kind of stacks if you are interested: https://www.fullstackrocket.com/become-author

  11. 2

    for inboxes.com I use nomad to manage the cluster, with Postgresql, nodejs express as backend and Nuxt Vue for the FE. All on a GraphQL api. Servers are in OVH bare metal.

  12. 2

    Hey!

    I like to fiddle with new techs every now and then. Trying out new patterns or just discovering new frameworks.

    But down the road, if I were to start building a SaaS, my answer would be Rails, without any doubt. Mainly because this is the tool I'm most familiar with. And because it's becoming "boring", which I understand as "stable" :)

    Once you get the hang of it, you can do a lot with Rails, with good performance & at scale. You can't do everything, but that's ok. If you have specific needs, use specific tech :)

    So I guess my answer would be: whatever you're the most familiar with, and don't be shy of using something battle-tested, aka boring ;)

  13. 1

    Here's a great article about The perfect SaaS tech stack!

    https://www.clickittech.com/saas/saas-tech-stack/

  14. 1

    Hey!

    A good, modern tech stack should include a cloud-native architecture built on Microservices, Kubernetes and Docker.

    For programming languages, I prefer Java for Backend and Angular for Frontend.

    For database, I like MongoDB (NoSQL) and MySQL (Relational).

    For monitoring, I recommend to explore the TIG Stack , and for logging I recommend to explore the ELK Stack.

    I wrote an article where you can find more detailed information on the tech stack we use:

  15. 1

    MongoDB
    Express
    Vanilla CSS/HTML/JavaScript
    AWS, Cronjobs, Ansible

  16. 1

    Hi Sushant! We built orgstack.io (the platform) on Django, Postgres, and React, and deployed to AWS. We use Jenkins for CI/CD. This stack is great for a number of reasons. Django REST Framework makes it easy to build/change API's quickly. Postgres is the leading open-source database, plus it includes native JSON support, which was an additional win for us. React has a huge community, along with plenty of open-source packages. AWS's services play very nicely together.

    1. 1

      Does json support mean we can use it more like a document db where its schemaless?

  17. 1

    Golang/Flask(Python) + React. Although not a popular stack. It is faster and reliable. No. of Golang developers is rising so you need not worry about hiring them. This one is particular to India.

  18. 1

    For PageMarker I use ASP.NET Core, MYSQL, Node.js and Angular 8

  19. 1

    I use Spring Boot for backend, React for frontend, MySQL for data and Heroku for deployment. I like this stack because -

    1. All these technologies are easy to get started with AND can scale really well
    2. Excellent community support, stability, backward compatibility (In the Java world things are rarely flipped on their head with a version change)
    3. Recent Java versions provide good support for new programming paradigms like functional programming

    With https://www.jhipster.tech/ getting started has become even more easy. If you have the data model figured out you can basically generate a production-grade web application in a matter of minutes.

    I have no affiliation with jHipster (it's 100% open source & free anyway). I just think its really cool.

  20. 1

    Tech Stack

    • react (via Next.js)
    • tailwindcss (for styling)
    • react native (if doing mobile)
    • graphql (via node and apollo)
    • postgres
    • GoLang for any compute intensive services
    1. 1

      love this stack. postgres is really popular. do you have any recommended hosting ? thx

      1. 1

        I can't recommend a single provider to solve this problem entirely (for the full stack).

        This would depend on the complexity of the project.

        For simple projects, I would recommend Vercel (for front-end and API). I would recommend Digital Ocean for postgresDB. I have a hard time recommending something like GCP or Amazon for PostgresQL if you intend to use any extensions as those providers limit or restrict extensions, so optimizing your database isn't always possible. For example, TimescaleDB (a time-series database done via a postgres extension), isn't available on GCP and AWS. Further, digital ocean has really competitive pricing, especially if you need a dev/staging environment as well.

        If you need to add something like GoLang or extensive services in the mix, then the question gets way more complicated. I've used AWS, GCP, and Azure, and they've all been a little frustrating to work with. I've ended up mostly using Docker swarm with my own container setup. Not ideal as I prefer not to be doing devOps, but the existing serverless solutions (or kubernetes solutions) are either more complicated, or often require too much setup time. Sad that Docker Swarm won't be maintained into the future, as I thought it was a good middle ground until the serverless stuff became more user friendly and less friction.

  21. 1

    Laravel + (Laravel) Spark + Vue + TailwindCSS + MySQL + Forge + Buddy.works for CI/CD, pipelines, etc.

    Spark to quickly take care of user and team management + billing.
    Vue for beautiful reactivity where needed.
    TailwindCSS to make frontend development fun.
    MySQL because it's a proven beast.
    Forge for server management.
    Buddy for CI/CD pipeline, tests, etc.

  22. 1

    Node.js/Laravel for backend & Vue/Angular for the frontend.

  23. 1

    I’m sticking with AWS Amplify + React as a solo founder since it Amplify handles what essentially should be another teammates job CI/CD pipeline. As well as handling most of the backend so that I don’t need to. However, the downside is that the multi-tenancy model is tricky to implement and so is billing per company’s use of resource. For example suppose a company that you onboard is using 80% of the bandwidth, yet is paying the same as a company that is using 10%. In that scenario I would lean towards using Google cloud service provider and Kubernetes with micro services. But frankly, haven’t been, and wouldn’t build anything with that fine grained of control until any money was rolling in.

    1. 1

      If you had any trailheads on multitenant for this framework, would be grateful. Grubbing around google hasn't surfaced anything I can study. Thanks in advance.

  24. 1

    For smalltuts.com I use Hasura, Next.js, Firebase, S3, and Stripe

  25. 1

    Whatever is appropriate for the product. I don't believe in golden hammers.

  26. 1

    Angular (awesome) + Firebase static hosting (free to start with) + Java Rest backend hosted in AWS lambda (pay as you go, with very generous free quota) + DynamoDB (generous free quota)

    For quick prototypes, I use Wordpress with Elementor (you can get up an running within 24 hours), but for anything serious I choose Angular (highly modular and maintainable coding + super fast loading + great google support)

  27. 1

    I use .NET core MVC, MySQL, and Bulma or Water (css). All on DigitalOcean. I try to use less to no JavaScript. If needed, I use Vanilla JS or jQuery. My most recent project has no JavaScript.

  28. 1

    TALL Stack is the only stack for me 😀

  29. 1

    I’m 1 of 2 developers working on my Saas, and we’re using

    Vue + Vuetify for the frontend
    Node/Express + Postgres for the backend
    AWS + Heroku for hosting

    I’m a huge fan of Vue because of ease of development, especially when it comes to state management and complex tasks. Also love Node + Express for setting up restful apis.

    Ultimately I’d choose this programming stack again because it’s easy to switch from working on the frontend to the backend since they’re both Javascript frameworks. We also have separate repos for our frontend and backend, which is great when there are weeks when one of us is focusing more on backend-related tasks while the other is focusing on frontend.

    We’re using Postgres due to performance and flexibility — we want to set up relations and also have some data represented as JSON.

    As far as hosting goes, Heroku is great for getting set-up if you don’t have much of a dev ops/architecture background, but I wouldn’t recommend it long-term because it becomes overpriced and you can get better performance servers directly from AWS at a lower cost (we’re currently in the process of moving over from Heroku to AWS).

    If I were to build everything again, I’d probably use AWS or Google Cloud from the beginning.

    Just my 2 cents, but hope it helps! At the end of the day, I’d recommend you use what you’re familiar with or whatever you’re passionate about learning and using 😀

  30. 1

    I typically choose React + BaseWeb on Netlify. If I need a backend my go to is Elixir + Phoenix. Mostly because that's what I have the most experience with, not because its trendiness. Though it does make it easy to scale.

  31. 1

    For https://targetaudience.app I use Nuxt.js with tailwindcss and a Laravel back end. Front end is hosted on Firebase and the backend on DigitalOcean :)

  32. 1

    My ideal stack is Django, Nuxt.js and Postgres. I've been working with Django for a few years now and I really like it. For my open source Airtable alternative Baserow I had to learn Nuxt.js and Kubernetes, but it was both well worth it. Wouldn't want it any other way now.

    1. 1

      Nice, another Django fellow. Can I ask, where do you host your Django application?

      1. 2

        Sure, the production environment is hosted on Digital Ocean. It runs on a Kubernetes cluster with two nodes having both 2 vCPU en 2GB of ram. It also depends on a managed PostgreSQL database with 1 vCPU and 1GB of ram.

        Did a load test yesterday and the tool can handle about 400 active users simultaniously on the current infrastructure.

        1. 1

          Thanks, really useful, specially the load test point. I'm still analyzing my options; this helps ;)

  33. 1

    I usually choose .Net Core. Frontend is vue or react.

    1. 1

      I like .Net Core for personal projects, but I use Angular as I find the Dependency Injection model is the same as .net so I'm not switching design patterns between front end and back end.

  34. 1

    Django for the backend, jquery for frontend and usually Heroku for hosting.

  35. 1

    I would go with the tools you’re most familiar with. This allows you to develop with speed and reduces the overhead of researching the easiest thing on the job.

  36. 1

    This depend on the project.
    But, usually, NodeJS/Express for the Back (currently trying to work on a project with Deno), and for the Front ...huh... well VanillaJS or EJS :| (probably not the best practice)

    And my go-to hosting platform is glitch.com

  37. 1

    This comment was deleted 4 years ago.

  38. 1

    This comment was deleted 2 years ago.

  39. 1

    This comment was deleted 3 years ago.

Trending on Indie Hackers
Meme marketing for startups 🔥 User Avatar 11 comments Google Whisk - Generate images using images as prompts, not text prompts User Avatar 1 comment After 19,314 lines of code, i'm shutting down my project User Avatar 1 comment Need feedback for my product. User Avatar 1 comment We are live on Product Hunt User Avatar 1 comment Don't be a Jerk. Use this Tip Calculator. User Avatar 1 comment