TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Tech stack for small SaaS side projects as a solo developer?

27 点作者 poushkar超过 1 年前
What tech stack would you choose for building SaaS side projects as a single developer if these were your priorities:<p>- build it once, deploy and forget for months or years;<p>- adding new features is easy (once it&#x27;s needed once a year or even less frequently). &quot;Easy&quot; here means little time spent reminding yourself how the app works and where to add new features;<p>- deploying is simple and can be done with little to no setup;<p>- language&#x2F;platform&#x2F;dependencies updates are infrequent, easy to do, unlikely to break the app;<p>- open source and developed by a community, no dependency on an enterprise.

26 条评论

ale_jacques超过 1 年前
I&#x27;ve been using boring tech for that:<p>* Python&#x2F;Django framework (Django itself has 17+ years &quot;on the road&quot; - that&#x27;s forever enough for me) * Postgres as my main database * Bootstrap as main UI (customized via Sass - not too fancy though) * Unpoly (<a href="https:&#x2F;&#x2F;unpoly.com" rel="nofollow noreferrer">https:&#x2F;&#x2F;unpoly.com</a>) for frontend and the SPA &quot;feeling&quot; of the app - absolutely no JS frameworks (React, Vue, etc.) - my SaaS product will be mainly CRUD operations, no fancy&#x2F;dynamic stuff.<p>Change Django for Rails (or any other &quot;magic&quot; framework) and you&#x27;re good to go.
whodev超过 1 年前
I answered this before on a pretty similar question a few days ago, but my go to stack for my small SaaS &quot;startup&quot; has been the HAG (HTMX, AlpineJs, Go) stack.<p>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&#x27;s distroless base image. That helps in reducing my attack surface.<p>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.<p>It&#x27;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.<p>Edit: I should also preface, that all the HTML&#x2F;CSS&#x2F;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超过 1 年前
What I would use: Python-based Django&#x2F;flask depending on the complexity, SQL database (postgresql, even SQLite for minimal projects), Apache&#x2F;WSGI, Ubuntu-based VPS (e.g. AWS EC2) with semi automatic deployment, automated backups on e.g. AWS S3, HTML5&#x2F;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&#x27;m quite familiar with. No surprises. Never failed me.
shagymoe超过 1 年前
Ruby on Rails is still the best at what you&#x27;re describing if it&#x27;s a web app.
romanhn超过 1 年前
At the risk of sounding like a broken record, but &quot;use what you already know&quot; is almost always the right answer for these types of questions (especially since I didn&#x27;t see &quot;learn new tech&quot; on the list of priorities). This is why every answer has a totally different stack and probably won&#x27;t help you all that much.
评论 #38597405 未加载
t312227超过 1 年前
imho.<p>1. the tech-stack you already know well.<p>if you are familiar with something: build on your existing experience.<p>2. php + some mature &amp; well documented framework like laravel<p>php is often disliked by the &quot;we know it better&quot; crowd here on HN.<p>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<p>preface: i would recommend the following only if you already have experience with it!!<p>3. python + some mature &amp; well documented framework like django<p>in my experience: deploying &#x2F; maintaining python-based webapps is more effort than php-based ones<p>just my 0.02 €
RadiozRadioz超过 1 年前
It&#x27;s telling that almost all these comments recommend things that aren&#x27;t JavaScript web frameworks. This has been my experience too, you want to avoid that ecosystem. For this reason in particular:<p>&gt; language&#x2F;platform&#x2F;dependencies updates are infrequent, easy to do, unlikely to break the app;<p>I&#x27;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.<p>Stick to relational databases. Don&#x27;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超过 1 年前
TALL stack (tailwind, alpine js, Laravel, Livewire)<p>(You could also use Larave + Inertia js + React&#x2F;Vue)<p>I think Livewire is way faster to develop in and has less bloat&#x2F;complexity.<p>Laravel Jetstream gives you scaffold and auth + 2FA out of the box.<p>TailwindUI is cut and paste LEGO like components (you&#x27;ll have to Alpine js some of them but it&#x27;s quick and easy)<p>Tons of Laravel packages available to do what you need to do.<p>Laravel Spark if you want a fast SaaS in a box for connecting to Stripe<p>Laravel Forge (EC2) or Vapor (Serverless) makes spinning up servers and deployment super easy.<p>Some of these are paid but you can definitley do it without them but all the paid items have crazy ROI.
folli超过 1 年前
As a solo dev for <a href="https:&#x2F;&#x2F;cubetrek.com" rel="nofollow noreferrer">https:&#x2F;&#x2F;cubetrek.com</a> my tech stack is as follows:<p>Front-end: Bootstrap, vanilla JS, for visualizations: D3.js and Babylon.js<p>Backend: Java Spring Boot, PostgreSQL<p>Deployement: semi-manual, script rsyncing the Jar onto the dedicated Hetzner Server<p>Regarding ease of adding new features: I guess that depends mainly on your code base and less on your stack
评论 #38474755 未加载
jokethrowaway超过 1 年前
Here is my latest<p>Frontend: bun, solid.js, tailwind, astro -&gt; cloudflare pages<p>tbh I had a smoother setup with solid-start but astro is better if you have static pages and everything I do is static pages: either pre generated static content or an app which calls an API. I don&#x27;t want a server busy rendering HTML and we have free hosting anyway thanks to all the JAMstack marketing money.<p>Backend: rust, axum, sqlx, sqlite, redid, systemd -&gt; hetzner<p>Single static binary is great for deploying whenever. Rust means my code won&#x27;t likely break because of typos or brain farts. You likely don&#x27;t need a database running in another process until much later on. If I do need it, I pick postgres.<p>I do have a separate, centralised auth &#x2F; permissions &#x2F; license services I use for a bunch of different services. Custom coded. Services get notified and update a local cache in redis with the data If I were starting from scratch I&#x27;d just chuck it in the main service (and what I did for years).
coreymaass超过 1 年前
It kind of depends on what the SaaS does. But I’ve had a lot of success with B2C apps on WordPress. It handles user management, routing, and dashboard out of the box with a few free or cheap plugins. Then depending on what the app is meant to do, I write code or manipulate plugins to do what I need.
soulchild37超过 1 年前
I used Ruby on Rails, deployed on DigitalOcean for my SaaSes , after a few years they gotten mostly stable and I seldom add new feature, mostly just fixes or integration with third party APIs.<p>Ansible for setting up infra, reusable across multiple apps, you can use PaaS like DigitalOcean app platform to save even more time<p>Managed Database by DigitalOcean<p>Ruby on Rails, served via Nginx<p>AlpineJS (with &lt;script&gt; tag), no build process needed TailwindCSS (use CLI locally to generate the needed CSS)<p>Been using this stack since 2020, couldn&#x27;t be happier, no bullshit of NodeJS &#x2F; NPM randomly breaks when I come back after few months
atomicnature超过 1 年前
Whatever you pick for the backend, on the frontend, I&#x27;d recommend sticking mainly to pure web technologies. You can get a decent phone version through capacitor or other webview-based solutions. Many eCommerce and such sites do just fine with webview based apps. It is so much easier when you can have just a single code base with some responsive CSS mixed-in to manage, rather than 2-3 codebases, with constantly diverging feature set.
foobarbaz33超过 1 年前
&gt; - build it once, deploy and forget for months or years;<p>With the containers thing any stack can do this.<p>But I get what you mean. Avoid anything to do with JS. It&#x27;s the worst of the worst for stability. Avoid Ruby on rails. Avoid python. These ecosystems will evolve out from under you.<p>Avoid anything from Microsoft. Did you make a website in 2014? tough luck, you are stuck on old .NET world now. Unless you port things over to the new world. Did you use silverlight? whoopsie!<p>If you really need your SaaS to work forever write it in Go.
评论 #38466272 未加载
评论 #38466433 未加载
lta超过 1 年前
Rails, rails or rails. Everything has its own place so it fast to develop and easy to maintain.<p>As for the frontend, I suck at it so I don&#x27;t have any opinion
fancythat超过 1 年前
Golang, Htmx, Sqlite if you want to deploy fast with minimal setup. For CSS, whatever works for you, but Tailwind &#x2F; Bulma &#x2F; Bootstrap are ok.
评论 #38520150 未加载
评论 #38475863 未加载
vamem9z超过 1 年前
I&#x27;ve had good success with:<p>Clojure (Polylith, Reitit, Clojure Spec and Spec Tools), XTDB (Postgres as the datastore), HTMX and Tailwind<p>Other combinations work just as well Clojure (same Clojure stack), InteriaJS, Postgres (no XTDB), Datomic, Tailwind<p>I would also recommend AWS Copilot to deploy containers to the AWS cloud with a Postgres RDS backend.
karmakaze超过 1 年前
For me:<p><pre><code> - front-end: either Vue or server rendered html from templates - back-end: Kotlin&#x2F;Java, Go, (if I&#x27;m adventurous Phoenix&#x2F;Elixir or F#) framework: something lightweight like Javalin + JDBI (or homegrown) - db: MySQL (because I can multi-writer, backup&#x2F;restore from *my* memory) or a cloud service offering</code></pre>
hnarayanan超过 1 年前
Django or Ruby on Rails.
ilrwbwrkhv超过 1 年前
Golang for fast critical services. Web stuff can be rails or laravel. Or you can do everything in Go if you want a single language. Also stop thinking of tech stacks. The word stack should make you feel icky. Also consider pocketbase which is written in go.
is_true超过 1 年前
If you can avoid it. Don&#x27;t use a JS framework.<p>I would go with PHP + Symfony + twig with bootstrap for the front
aregsar超过 1 年前
The unicorn framework ;) but seriously maybe using using something like Wordpress or drupal with plugins would work or maybe something like the elixir based phoenix framework deployed on fly.io
tomcam超过 1 年前
PHP, SQLite, vanilla javascript, and maybe an older CSS framework like Bootstrap would fill the bill.
revskill超过 1 年前
React server component all the day.
shanecleveland超过 1 年前
python + flask, mysql&#x2F;mariadb, bootstrap, jquery
Communitivity超过 1 年前
Some thoughts... 1. There is no tech stack in the world you can safely deploy and forget about for months or years. Security updates are needed, OS updates cause changes, browser technology changes, and your users change. Even setting aside security, let&#x27;s say you build something that becomes popular, you&#x27;ve no IC lock-in, and you don&#x27;t add features &#x2F; adapt. Sooner or later someone is going to create a clone that does add features &#x2F; adapt and you will start to lose business.<p>2. Adding new features is rarely &#x27;easy&#x27;, because you have to test it with the other features, do deployment, support older versions of the app (if possible), etc. Still, some stacks make it easier than others.<p>3. Simple deployment once you&#x27;ve configured your automation is an area where there has been lots of progress. You can look at Puppet, Chef, Docker containerization.<p>4. Dependencies change. Typically you should view changing dependencies like you would adding a new feature: have a justification for it, do full testing, and only then deploy.<p>5. Open Source is easy to find, and there are a lot of good quality candidates.<p>6. One commenter recommended to use what you know. Within reason, that&#x27;s good advice. However, the old adage of &#x27;when all you have is a hammer, everything looks like a nail&#x27; applies. Use the right tool for the job.<p>7. For the front-end, I recommend client side JavaScript, either Lit or React using Vite. Svelte shows promise, but is not fully mature enough yet to be acceptable when you&#x27;re solo and using it in production.<p>8. For the back-end, I recommend Rust. It&#x27;s reliable, it&#x27;s performant, and there is a good ecosystem for it. If you go that route, I recommend Axum or Tide for your Web server, fronted by Nginx. You could also go NodeJS (or Deno) and Express or Next. A JS back-end though means you&#x27;re at the mercy of the NPM ecosystem, which is rife with abandoned packages. Rust could get like that, but seems to be more well pruned. If you go with Rust and want easy new features, a REST based API using a plugin architecture can work well.<p>9. I recommend 3 repos: front-end, back-end, devops. Your deployment scripts and other things go in devops. Your front-end, if you follow 8, will be Javascript. Your back-end, if you follow 8, will be Rust.<p>Btw, Rust comes with some caveats. If you don&#x27;t know it already it has a steep learning curve, however the benefits of learning it are high. You also can use an existing hardened version of Rust made by Ferrous Systems, called Ferrocene (I&#x27;ve no relation with them, other than maybe wanting to work there someday).<p><a href="https:&#x2F;&#x2F;ferrous-systems.com&#x2F;ferrocene&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;ferrous-systems.com&#x2F;ferrocene&#x2F;</a>