Readit News logoReadit News
Posted by u/poushkar 2 years ago
Ask HN: Tech stack for small SaaS side projects as a solo developer?
What tech stack would you choose for building SaaS side projects as a single developer if these were your priorities:

- build it once, deploy and forget for months or years;

- adding new features is easy (once it's needed once a year or even less frequently). "Easy" here means little time spent reminding yourself how the app works and where to add new features;

- deploying is simple and can be done with little to no setup;

- language/platform/dependencies updates are infrequent, easy to do, unlikely to break the app;

- open source and developed by a community, no dependency on an enterprise.

ale_jacques · 2 years ago
I've been using boring tech for that:

* Python/Django framework (Django itself has 17+ years "on the road" - that's forever enough for me) * Postgres as my main database * Bootstrap as main UI (customized via Sass - not too fancy though) * Unpoly (https://unpoly.com) for frontend and the SPA "feeling" of the app - absolutely no JS frameworks (React, Vue, etc.) - my SaaS product will be mainly CRUD operations, no fancy/dynamic stuff.

Change Django for Rails (or any other "magic" framework) and you're good to go.

whodev · 2 years ago
I answered this before on a pretty similar question a few days ago, but my go to stack for my small SaaS "startup" has been the HAG (HTMX, AlpineJs, Go) stack.

With this you stack you have a dead simple web application that can be completely self contained in the executable with `go:embed`. That makes deployment an absolute breeze. Since I also attempt to use as few third party packages as possible and the ones I do use are pure Go, I can containerize my app and deploy it with Google's distroless base image. That helps in reducing my attack surface.

And while my app is a monolith using an embedded LibSQL database (SQlite), I can easily change my app configurations via environment variables to use a remote LibSQL server and then scale my app behind a load balancer with more servers.

It's honestly such a simple yet effective stack for development. My one web app handles both the api and web requests, I can easily scale, and building my app is fast.

Edit: I should also preface, that all the HTML/CSS/JS used by my website are (mostly) vanilla and developed by myself. So no use of a CSS library like Bootstrap, Bulma, or Tailwind. And also no use of JS libraries like JQuery. I do use HTMX and Alpine, but they are both being embedded into the executable like I stated above.

rossant · 2 years ago
What I would use: Python-based Django/flask depending on the complexity, SQL database (postgresql, even SQLite for minimal projects), Apache/WSGI, Ubuntu-based VPS (e.g. AWS EC2) with semi automatic deployment, automated backups on e.g. AWS S3, HTML5/CSS3 with a minimal CSS framework such as Skeleton, Vanilla JS. Mature tech stack, minimal dependencies, slow upgrade pace, and most importantly, a stack I'm quite familiar with. No surprises. Never failed me.
shagymoe · 2 years ago
Ruby on Rails is still the best at what you're describing if it's a web app.
romanhn · 2 years ago
At the risk of sounding like a broken record, but "use what you already know" is almost always the right answer for these types of questions (especially since I didn't see "learn new tech" on the list of priorities). This is why every answer has a totally different stack and probably won't help you all that much.
kirso · 2 years ago
If the question would be phrased as, I want to get proficient and get to learn how to build a full SaaS app from scratch knowing JS/HTML/CSS, what would be the answer then?
t312227 · 2 years ago
imho.

1. the tech-stack you already know well.

if you are familiar with something: build on your existing experience.

2. php + some mature & well documented framework like laravel

php is often disliked by the "we know it better" crowd here on HN.

but: it offers a high rate of productivity, is easier to deploy on a wide range of hosting-possibilities than anything using python or other script-languages

preface: i would recommend the following only if you already have experience with it!!

3. python + some mature & well documented framework like django

in my experience: deploying / maintaining python-based webapps is more effort than php-based ones

just my 0.02 €

RadiozRadioz · 2 years ago
It's telling that almost all these comments recommend things that aren't JavaScript web frameworks. This has been my experience too, you want to avoid that ecosystem. For this reason in particular:

> language/platform/dependencies updates are infrequent, easy to do, unlikely to break the app;

I'll second the Django, Rails, Laravel, but also add something statically typed like Java with Spring if this is purely an API backend. Static types will give you peace of mind during runtime for years.

Stick to relational databases. Don't buy into hype stuff on Medium blogs. You can go a long way on a VPS with an LTS distro on auto-update (very few SaaS businesses actually have scale that exceeds what a modern VPS can do).

saluki · 2 years ago
TALL stack (tailwind, alpine js, Laravel, Livewire)

(You could also use Larave + Inertia js + React/Vue)

I think Livewire is way faster to develop in and has less bloat/complexity.

Laravel Jetstream gives you scaffold and auth + 2FA out of the box.

TailwindUI is cut and paste LEGO like components (you'll have to Alpine js some of them but it's quick and easy)

Tons of Laravel packages available to do what you need to do.

Laravel Spark if you want a fast SaaS in a box for connecting to Stripe

Laravel Forge (EC2) or Vapor (Serverless) makes spinning up servers and deployment super easy.

Some of these are paid but you can definitley do it without them but all the paid items have crazy ROI.