34
84 Comments

What's the best tech stack for a one-man SaaS?

Now the front-end isn't the issue. But the backend, it may be hard to manage.
So what are your favorite tools for a one-man SaaS? Firebase?

  1. 70

    The one you're most familiar with.

    Use boring technology, as they say.

    1. 6

      Absolutely this.

      You will be more productive with the technology you feel comfortable with. If you look for the best available tech-stacks you might get overwhelmed by the options which are available. You would probably end up spending more time comparing these stacks.

    2. 2

      I respectfully disagree, though I think familiarity is important as well.

      I am easily most comfortable with JS/Typescript -- it's what I use most days for work. However, I could build a standard business app substantially more quickly with RoR. Most often, I think this would be my answer: Rails w/ PostgreSQL on Elastic Beanstalk.

      It just ends up depending on the particular use case, even after you factor in learning time. A few years ago I worked on an IoT app and used Node on serverless functions w/ DynamoDB. Today, I'd use Firebase instead.

      For my current project, I'm using Phoenix/Elixir because I want a some dynamic content/interaction but an SPA feels like overkill and too much work. LiveView sounds like a nice compromise. Achieving the same thing w/ Rails would meant sprinkling in JS and I couldn't find a way to do that in the reactive style I'm familiar with :)

      All that to say, I'm on team use the right tool for the job as long you have a base level of familiarity with the tool or at least confidence that you can be effective with said tool.

      1. 2

        Of course, familiarity is necessary but not sufficient. Using the right tool for the job is definitely true too.

    3. 2

      I was going to throw my 2 cents in, but this is probably the perfect response. Boring tech allows/forces you to just focus solely on the product.

      1. 1

        Absolutely, if your goal is to learn specific technology, then go for it. But when it comes to delivering the product to the market, then don't overcomplicate things.

    4. 1

      Was going to say the same thing, haha

  2. 7

    Have you tried Vercel + Supabase integration? I was able to set up a site on Vercel in minutes.

    1. 3

      Being a super Firebase fan for years now I was super excited about Supabase and having a proper Postgres db to work with but as I tried to build something with it there were always some limitations and compared to Firebase it really feels incomplete, yet. And it's not that easy to just jump into as you could with Firebase.

      1. 1

        Haven't worked with Firebase yet, but I do have experience with Postgres/Node/Express. Supabase has been pretty interesting as it essentially auto-creates the backend API via the Postgres data model. Is it still in beta?

        Some missing functionalities I had to set up via custom SQL queries:

        • custom enum types
        • views (doesn't follow RLS!)
        • triggers to sync auth table with a regular data table

        Some missing functionalities I haven't figured out how to handle yet:

        • schema/data migrations
        • test vs prod environments (or even cloning a project)

        Method of restricting data access is primarily Postgres's RLS, so writing policies can get quite hairy with a normalized data model. Only back-end code I had to write so far was to get around limitations of RLS and to call supabase API using elevated access.

    1. 2

      Rails is the framework that I wish I learnt way earlier

    2. 1

      It's amazing how many tiny decisions you have to make when you don't use rails. All those tiny decisions can add up to months of extra work.

  3. 5

    Most answers to this question gravitates towards "use what you are most familiar with" I do not agree with that all. The tech you are most familiar with may not be suitable for the idea of your product or services. It may not be cut out for it at all. In my humble opinion, the answer is more like "use the tech stack that is more suitable for the project"
    and to know that, you'd have to lay out the contours of your project and understand what it is that you want to accomplish. More often than not we put the carriage before the horse (tech stack before project idea) and that may be a source for trouble later on

  4. 4

    I'd say use what you're already familiar with. If you're not sure where to start, pick the simplest you can get away with.

    But for a more opinionated starting point: You can check out managed services such as Heroku, Render, AWS Lambda/Fargate or Digital Ocean App Platform.

    These are simple, not overly expensive and you can leverage some of their other services once you need to grow.

    If you want a concrete example, some months ago I wrote a blog post describing the tech stack of my one-person SaaS.

    Just take it with a grain of salt: It's definitely more complex than what most products need, but it works really well for my use case.

  5. 3

    Agree that the best start is the stack that you already know cause you need the solution to be cheap and easy to made - you need to test a lot of hypotheses before finding product-market fit, you need to iterate fast.

    As for me the stack is:

    • for the first prototype: Glitch.me + static html for a landing page (Bootstrap + Mailchimp form)
    • for the prototype 2.0: Glitch.me + flask + Bootstrap theme + Stripe Payment link
    • for the prototype 3.0+: Heroku + Django + Bootrstap Theme + Stripe Checkout
  6. 3

    I learned this during my research for CTO Toolkit

    SaaS startups should try and use whatever is popular in the market for their niche - so that it will be easy to:

    • outsource projects
    • find developers to join the company
    • sell it off to larger companies (M&A)
    • share knowledge and code with other developers in the same space
  7. 3

    I love Spring Boot + Postgres + Stripe Checkout

  8. 2

    If i was starting from scratch i would use this python django backend template: https://www.saaspegasus.com/

  9. 2
    • NextJs
    • GraphQL (Maybe GraphCDN as a caching layer)
    • MySQL (Maybe PlanetScale as a serverless DB)
  10. 2

    Nextjs, Nodejs, Mongodb and NGINX. This is the coolest combination.

    1. 1

      Are you using Nginx for reverse proxy? Can starter template for nginx configuration which you can suggest?

    2. 1

      I am confused. Why do you need node when you have next. Next is SSR right?

    3. 1

      So express is your Node.js framework? or which one?

      1. 1

        Yes, express it is. I like how you can use middleware modules for additional tasks.

  11. 2

    Backend using flask and redis. For user accounts, I use a combination of getcheddar, airtable, convertkit (for email notifications). Some zapier integrations. Sentry.io to detect errors.

  12. 2

    I agree with most folks here – use whatever you know best and is suitable for the job.
    For me, it's either the TALL stack (Tailwind, Alpine, Livewire, Laravel) or VILT stack (Vue, Inertia.js, Laravel, Tailwind), depending on how much reactivity I plan to implement.

  13. 2

    I use Flask, MySQL/Postgres for all of my projects. Use whatever you are most comfortable with.

  14. 2

    The 3 R's have served me well:

    • Backend: Rails
    • Frontend: React
    • Deployment: Render

    Honestly an absolute breeze to work with. Rails and Render are both opinionated so they will basically handle all the heavy lifting.

    You could get an average MVP (i.e. twitter clone or something) built and pushed live within 1 day with this stack (assuming you know how to use it of course).

    But it's usually not worth it to learn something completely new to build a product. If you already know a framework, use that. If not I would recommend the above.

  15. 2

    I start with Rails + Postgres. It's fast to build/iterate, and it just works. If what I'm doing requires real compute then I'll build a little supplementary service in whatever makes sense as well...but for the vast majority of all startups with less than 100 customers a single server with postgres and rails on it will be fine.

    Over 100 customers? Congrats...now you know enough about how people use it and what caused you pain to iterate from there.

  16. 1

    I'd add something: you don't need to use the one you're most familiar with (of course, it will be the shortest path to success).

    You could also pick the one that you would enjoy the most. The thing with product making is that you are not sure about anything, when it comes to the result. So, if you can enjoy it, at least, discover some new technologies, … that would already be a win.

    You can even mix them. When building my app: https://datelist.io, I took the backend language I knew the most, combined with a frontend framework I really wanted to discover: Vue.js

    So, I can say you can pick between :

    • A stack you know
    • A stack you would like to learn

    There is just another choice that you should avoid:

    • A stack you don't know and don't really enjoy learning
      Of course, it's because that choice will neither give you results, or pleasure.

    Good luck for your project,

  17. 1

    There are modern serverless databases are popping up every day now. Which can make you sleep well. They are 100% automated, pay for use, and planet level scalable. https://serverlesstalent.com/products/database

  18. 1

    I've used Firebase and like it I've also used Azure, Render.com with BlitzJs and recently started using AWS.

    As a mention in this tweet ☝I think more Indie hackers could benefit from how cheap AWS deployment is. If you can deal with the complexities serverless will be the most expense efficient way to host applications.

  19. 1

    For my particular use cases, I prioritise 3 things:

    • Ability to iterate fast.
    • Easy to maintain and not over engineered.
    • Won't create a big hole in my wallet.
  20. 1

    I guess the question would translate to what's the tech stack you are more productive with.
    Once you answer that question, you will have address how are you going to distribute your Saas: Azure, AWS, Google, on premise?

  21. 1

    I've pushed bloggu.io live with Supabase and Next.js in 1 week.

  22. 1

    Go with firebase, there's nothing wrong with it, or try MongoDB cloud's free tier. Don't host it yourself, don't worry about security. SQL? Sure. What's the first thing that comes to your mind when I say backend? Is it Nodejs? is it firebase? is it PHP?

    There's absolutely nothing wrong with any of these just get started. Figure this out later. Hire a dev to work in parallel to rewrite the entire code from PHP to NodeJs for example. It's worth it.

  23. 1

    I would suggest a low-code backend to make your life easier.

    • Canonic
    • Supbase
    • Xano
    • Backendless
    • Firebase
  24. 1

    Random person you meet on Internet with a success story ≠ Your Success Story.

    You need to account for time required to acquire the skills mentioned here.

    • Web programming (CSS, HTML) ~ 6 months
    • FrontEnd ReactJS/Vue/Svelte - learning time ~ 6 months
    • BackEnd Ruby on Rails Or Python Flask/Djanog Or PHP Laravel Or FireBase- learning time ~ 6 months
    • Database Management (Learning to take proper daba backups) ~ 2-3 months
    • DevOps ( Learning to Deploy, map DNS, SSL ) ~ 1 month

    Additional time is required for Design/ Marketing/CopyWriting/Social Media Marketing/Sales Call.

    I have estimated time optimistically. Your time may vary - but you are realistically looking at 1 1/2 years of learning.

  25. 1

    I keep it simple: Bootstrap, Express and PostgreSQL. I'm looking to learn React tho

  26. 1

    I regularly get amazed to find many wonderful and scalable apps built even on PHP.

    Choose a stack that you are familiar with and once you start achieving scale, it is easy to add part of new functionalities in a different stack as microservices.

    We started with Java, Spring for our CRM product at www.toolsoncloud.com and it has worked out pretty well for us.

  27. 1

    Great question - what have you chosen in the end?

  28. 1

    I like Python and have been using django for a while (almost 10y) but since a product enter by the eyes first I think UI is a key componenet and I feel django maybe hasn’t the most rapid templating, therefore I use Vue on frontend and it is super fast to get on it and mock some ideas, also reuse it in other projects.
    So my stack is well splitted between Vue + Nuxt on frontend rendering and Django + Postgres + Celery on backend. Also a docker managing all the stack.

    I think the perfect stack, is just a good one where you are confortable to work with and help to speed up the process.

  29. 1

    I think best ABP FrameWork. I managed 3 saas projects, especially if has a tenant feature ABP excellent.

  30. 1

    For one-man SaaS, you want to deal with as little server management and dev-ops related activities as possible. Plus, you really want to maximise your productivity, so that you can build your app in a short amount of time.

    The stack that I'd recommend you is a bit unconventional, but works for me:

  31. 1

    Nodejs express anytime, by the way these are not hard, their deployment to ec2 etc is a little tricky

  32. 1

    I’m wondering the same thing. When people are asking about technology, they usually aren’t an expert. If they were comfortable with a technology, then they’d use that and not ask. Anyone have recommendations for someone who’s NOT comfortable with an existing technology?

    1. 1

      Yeah True. I don't have a big experience with Backend so that's why I mentioned firebase. I thought the suggestions would go with that theme. I'm familiar with Django and Node.js. However, I think they would require tons of time to ship something and it doesn't make sense to me as I'm doing this alone. Anyway, I chose Firebase.

  33. 1

    Our micro saas build on Tailwind, alpinejs,handlebars, gulp and

  34. 1

    I was building a personal project in Go + Vue.js. Progress was so slow.

    I switched over to Rails + Hotwire, and it's been a pleasure to work in because I feel like I make visible progress every day.

    So, my biggest recommendation is - avoid separate backend+frontend stacks, and try to use some full-stack framework if possible. It simplifies life a lot.

  35. 1

    Nomadlist is one single PHP file. $441k ARR https://nomadlist.com/open

  36. 1

    As a one-man SaaS I use React, Node, Mongo, express, firebase auth, and Stripe.

    1. 0

      ill +1 this... go for firebase backend as service for SAAS indehackers... firebase is quick to get started and has a fair free usage which will keep your product live for those first 2-3yrs even if things are tough...

      firebase would certainly be a bit pricey once u have enough users, however i would say that is a good problem to have and you can optimize cost or more incrementally to AWS/GCS...

  37. 1

    I think I want my next app to be build on AWS Lambda. Been playing around with it a lot and while the developer workflow is not what I'm used to, the benefits in scalability/maintenance/ops seem extremely worthwhile for a 1-person SaaS to be sustainable over the long term.

  38. 1

    I would say use the tech stack you are most comfortable with.

    Even if it is viewed as the worse tech stack by others.

    I would say if you can find the tech stack being used on major sites then you are good to go.

    Good luck!

    1. 1

      I'm experienced in the front-end (React) but not the backend.
      Anyway, I chose Firebase as it offers a lot of out of the box features

  39. 1

    Django all the way + React if needed in some place. ( I rather do CDN the single page than trying to create a project using NPM.

    1. 1

      Django is great. React is great. But the combination is a bit troublesome

  40. 1

    The best tech stack for your new project is the one that gets your idea in front of customers most efficiently. Not shipping is the single biggest block to success.

    If you encounter the problem that too many people want to use your idea and the stack isn't up to it you'll be able to hire a team. At that point I would defer to the expertise of the tech team you hire (their answer will be a combination of what they like to work with, what they are familiar with, and what best meets the challenges of the achieving the vision).

    "Get it out there" is the driver for best choice.

  41. 1

    As others have said, what you know + simple and quick. Your goal is to see if people want what you have to offer.

    We started as a small team with Firebase and it has grown with us. It really makes development, security, and DevOps easy, but it does get more expensive as you grow.

    Here is what we used: https://www.ayrshare.com/our-firebase-tech-stack/

  42. 1

    If you would ask me then Rails or Phoenix with absolute simple single-server deployment (which you can learn about here).

    But if you already know something, you can stick to it.

  43. 1

    It depends of the type of application you building. I use firebase for small scale application and spring boot for larger one

  44. 1

    For me, it's definitely :

    • Next JS / Redux
    • Nest JS
    • MongoDB
    • Nginx
      With this you can change the world 😊
  45. 1

    Why do you ask about others' favorite tools? What is your favorite tool? Pick up that you like most, that you are most confident with and it will be the perfect tool for a "one-man SaaS".

  46. 1

    Tailwind CSS, NextJs, Apollo, Prisma, MySQL, Digital Ocean or AWS (depending on project size)

  47. 1

    AWS LIGHTSAIL offers some out of the box bitnami stacks (LAMP, Django, NodeJS, WordPress, MEAN ... etc) that just work with as little configuration as possible. Networking (DNS Zone, Load Balancer, CDN etc...) is a breeze. Through peering you can access other AWS services as well. Lightsail is like a Private Network within AWS. It really provides everything a startup needs to get off the ground and very scalable. cost is pretty reasonable. I really fell in love with you. It

  48. 1

    I'm biased, but I use https://www.blitzjs.com.

    And because I'm a one man show, I decided to create a SaaS starter for blitzjs. Check it out https://www.1upblitz.com

    It already saved me an others a HUGE amount of time and stress.

  49. 1

    I think the main idea is to merge front-end and back-end in the way you are not wasting your cycles.

    There are 2 good options today (other stacks might have a copy of this as well):

    • Rails + Hotwire
    • Phoenix + LiveView

    But above all use what you know.

    1. 1

      I personally love the idea of a more unified front-end and back-end. I made this Svelte-based frameworky thing called Full Stack Svelte that I've been using in production and has made my life a lot easier: https://github.com/Glench/full-stack-svelte-prototype/

  50. 1

    I just published an article about my tech as one-man SaaS: Modern Tech Stack to build a SaaS in 2021

    Built with modern technology for 2021 with Next JS and AWS

  51. 1

    NextJS, Django, Postgres, Redis, Tailwind UI, Docker, Heroku.

  52. 1

    Agree with others on here! The best tech stack is the one you are comfortable/familiar with. For https://launchweb.me - a man one show, it's all Firebase - Auth, Firestore, Storage and Cloud Functions.

  53. 1

    For SiteFast(https://sitefast.live/), a one-man show.

    I am using the TALL stack(Tailwind,Alpine,Laravel, Livewire)

  54. 1

    As everyone else is saying: there's not best tech stack. But my own stack is: PHP on Laravel, PostgreSQL, Forge for deployments.

  55. 1

    Like others have mentioned, you can't go wrong with Postgres. Check out Hasura (Graphql) and Supabase (like Firebase) if you want a low code and easy way to set up a backend on top of Postgres. Both have hosted versions which means you don't have to manage servers or open source that you can self host. Avoid nosql at all costs.

  56. 1

    In my opinion, the best tech is the one you're most comfortable with. Doesn't have to be sexy.

  57. 1

    I build saas’ in Django. It’s boring and not not modern frontend friendly. But it gets the job done.

  58. 1

    Big fan of Next.js + Firebase/Firestore + React Query + Stripe Checkout

  59. 0

    YMMV but my personal preference is Next.js serverless functions + Prisma + Postgres

Trending on Indie Hackers
I watch how IH is turning into a marketing sink, and I feel sad :( 38 comments Bootstrapped my productivity app to 700 paying customers! AMA. 23 comments Bootstrapped my SaaS to $20,000 MRR. AMA! 18 comments How we got our SEO clicks from 1 to 1200 a day 13 comments Small pivot. Big redesign. Tell us what you think. 4 comments Do you guys have YouTube mentors? 4 comments