no because that doesn't just work and involves additional work. A lot of additional work.
Because it mustn't "just work" and then when the project grows you setup something new. It must "just work" and then scale to continue working for the initial and maybe all phases of the software product.
So e.g. security matters, so you rally don't want to maintain an OS. Sure a OCI image has OS like properties, but by using stateless approaches and carefully select a very thin base image and rebuild it automatically with the newest version of the image you can sidestep most of that work load.
Then you need auto scaling.
Then you need to be able to add services on the fly without problems (e.g. another DB) and they need to have their own scaling.
Then there is networking, as you don't create a super complex applications you don't need anything complex but still something solid.
fly.io does provide all that
So not only can you get something running trivially, you can the incrementally improve on it and even ship it in many cases without needing to re-design your deployment.
Looks tbh. pretty grate for small and mid sized companies (or autonomous project of such size in larger companies).
You need auto scaling to evaluate an idea works?! That's the post I replied to. You need none of that. Have been running apps in a decent scale for decades and an NGINX+postgres in a single VM will take you to many customers before it becomes a bottle neck
What is less friction than an rsync command to deploy ?
I think something happened with a generation of programmers that completely missed the basics and went straight to abstractions.
They know react but not JavaScript, they know k8s but not linux… and they barely know how a computer works. They read a lot of stuff online in blogs but no books. They think moving fast is what some company marketing material says it is.
Look anything you build on top of the basics will be more complex than the basics. It’s worth it to abstract complexity when that arises, when you don’t have it, it’s not necessary and only causes you to move slowly.
Nothing will be faster to iterate than a file on disk if you’re working alone and want to validate an idea. You can literally rsync the folder you’re dev-ing from on a git tag and change a symlink in a single command. That will take you very far with no friction.
What I’ve seen failing is people who find the non existing problems they have more interesting than delivering value
$5/mo will host my webapp and a postgres db? The domain has to happen either way, but when it's an idea I'm playing with, I don't want to pay $5/mo as my projects move pretty slowly due to prioritization of full-time work and family.
But if I'm going to do all that, I might as well just install k8s and deploy with the cli. I've already gone through the learning curve. But I don't want to do that. I don't want other people that might join my project to have to learn k8s for a tiny side project.
lol, apps that are probably way higher scale than your side project have been running with a db on the same host for decades now. And that jump to k8s is a big jump.
You can scp the tarball of your docker and docker-compose down/up
If you want even easier, just put your app on docker and run nginx natively via systemd or wahtever.