Live data from Hacker News

The Tech Stack of a One-Man SaaS

panelbear.com

221–230 of 259 posts

Re: The Tech Stack of a One-Man SaaS

#221
post #28

Earlier quoted context omitted.

I agree with you. I wouldn't blindly recommend my stack to everyone, one could argue it's probably even overkill for my SaaS project right now. At this scale I could get away with a couple of $20/mo instances, and call it a day. However, it just made sense for me due to the simplified operations, and re-using most of the learnings from my full-time job. It has enabled me to move faster in shipping customer-facing fea…

Your stack is great. If anything, I think many one-man SaaS will benefit from using k8s. That's the superpower of k8s, one person can go from 1node to 1000nodes if they need that scaling with minimal effort. Cobbling together shell scripts and tools for one or two servers is just as much work as using k8s, so long as you don't run your own and use a managed service. Best of luck, I think your list is pretty reasonabl…

Eeesh I dunno. I agree that the paradigm has broad scaling capablities, but the amount of time I spent chasing down weird behavior in our (managed) cluster at my last job was a total waste, and the company would have been much further along if we'd spent that time on literally anything else. Somebody still needs to manage the managed cluster, IMO.

Re: The Tech Stack of a One-Man SaaS

#222

Earlier quoted context omitted.

I recommend just writing a Docker container instead. That's the ultimately portability and you can run in much more efficient environments (Cloud Run, Fargate, DigitalOcean Apps, Fly.io) and still scale up to large Kubernetes-based clusters if/when you need it. Docker containers avoid the lock-in of a particular platform or CLI, and they can also be used as cheap CI/CD with multi-stage builds within the container.

Docker means you're maintaining an operating system, watching out for security vulnerabilities, patching software. It's still work, and if you screw it up, you're hosed. If you're on Heroku or Google App Engine, you deploy your application code. That's it.

Docker containers (on Linux) don't have a guest OS. They all share the same kernel and only the userland is different depending on which distro you choose for your base.

You can choose to build on a scratch/blank image just as easily, which means nothing except your app itself is in the image.

Re: The Tech Stack of a One-Man SaaS

#223
post #46

As a one-man team operating a 10+ year old SaaS product, I’ve done two things that have helped keep things sustainable. The frontend continues to be server generated. PJAX style partial page updates is (mostly) dynamic enough. The maintenance burden of operating a JavaScript frontend is too high to justify for a 1-2 person team. The second thing I’ve done is avoid containers. VMs work fine for many types of applicati…

I'm glad you shared this. I've been reading the comments here with much interest but simultaneously also a sense of impostor syndrome, for I've been running my one-man SaaS on generic LAMP since 2005, and aside from adopting jQuery early on, I haven't much touched any other piece of exciting tech that's come out since. My old and boring stack works just fine on the VMs that it runs on, and and continues to support me…

> feel like I'm waaay behind the tech curve with my use of such an old stack, and am somewhat scared to admit it.

If it pays your bills and gives you the work life balance you want, why do you care?

Running on the perpetual treadmill of cutting edge tech (especially with JS and containers where everything new is old every other month) is nothing to strive for. I know plenty of engineers who are very up to date on the latest trends but have no personal lives or families and are basically married to their job. I don’t envy them, I envy you.

Re: The Tech Stack of a One-Man SaaS

#224

FWIW, Pieter Levels just started using Git last week. https://twitter.com/levelsio/status/1327451757975375874 This is one-man who made > $1million a year.

He said he started using git because it was helpful for Ghost, and he was planning to hire another developer.

He didn't need git otherwise.

Re: The Tech Stack of a One-Man SaaS

#225

Earlier quoted context omitted.

Docker means you're maintaining an operating system, watching out for security vulnerabilities, patching software. It's still work, and if you screw it up, you're hosed. If you're on Heroku or Google App Engine, you deploy your application code. That's it.

Docker containers (on Linux) don't have a guest OS. They all share the same kernel and only the userland is different depending on which distro you choose for your base. You can choose to build on a scratch/blank image just as easily, which means nothing except your app itself is in the image.

You still have to update the packages or distro your image is based on. It’s not as maintenance free as heroku or google app engine.

Re: The Tech Stack of a One-Man SaaS

#226

Here's my self-serving advice for every one-man SaaS: Use Heroku. It's super easy to get started. And when you reach $2000+ in monthly bills, hire me to move things over onto dedicated or EC2 so that you'll get 10x that performance for the same price. As for the actual language, I think PostgreSQL + Ruby Backend + JS Frontend is still the easiest way to get started. All those great architectural ideas don't matter mu…

Something doesn’t make sense here. Say, you’re a business, and want to set up your own e-commerce site. Whether it makes money immediately or not, is not a concern, as the business will pay for it, and absorb the initial loss. And the development costs to build the site are already in the $50,000+ range. So with all this upfront expense, why don’t the business just go with EC2? Unless this is for some silly hobby web…

They start the comment saying its targeted at one man SaaS. Even e-commerce, there are many who will not drop 50k on development and just start with shopify.

Re: The Tech Stack of a One-Man SaaS

#227
I use plain PHP for backend and HTML for the front-end (plus javascript and libraries from the awesome open source communities). It's just fast enough to ship. And personally, I find it very easy to scale if needed. Don't worry, debugging is not that hard as long as you don't complicate your code.

Re: The Tech Stack of a One-Man SaaS

#228
Thanks for sharing, I would like to know more about how you define your deployment infrastructure and environment with code(Docker,terraform,kubernetes etc) including migration checklist. I think it deserves its own blog post and youtube video

Re: The Tech Stack of a One-Man SaaS

#230

But does Python scale for back end applications?

Yes, it does, as long as performance-bottlenecked code is not in Python (and it usually isn't). In the real world, you may have to extract some hot regions to C++ or Rust or Java, but 99% of your code will scale infinitely.

Notwithstanding this (that Python will scale), Python will force you to scale horizontally a lot earlier than something like Rust. In mid-2013, NewsBlur was using 48 servers to run its Python/Django stack. The workload was reasonably precisely declared (and I could grudgingly see why it used so many servers for its stack), so I was able to run the numbers and confidently concluded that something reasonably efficient (which for me would now mean Rust) could have handled the same workload on one equivalent server, though not with a great deal of headroom, and further vertical scaling might have started running into I/O limitations. But for a one-man thing, I know I would prefer to use a single server as long as convenient, and a 98% reduction in hosting bill is very significant (though that’s a moderately extreme case, and I imagine smaller parts of the code could have been rewritten in a language like Rust to get a meaningful fraction of that resource usage reduction).
Post reply on HN