Why do you think nobody has been able to fully emulate this experience?
It seems to me like there’d be a big market for an identical feature by feature Heroku “clone” with a more dedicated (from the outside looking in) team. No more features, no less, just exactly what Heroku did but without the intent to shut down. What’s preventing that from existing?
There are some that have emulated it, but the team that was there and created Heroku cared deeply about developer experience. When you just "clone" that you miss pieces, one PM friend that I worked with at Heroku called them papercuts. We would obsess over such things and the quality of something being shipped.
Even now if you emulate that it's one thing, but Heroku has been frozen in time for at least the last 5 years, maybe closer to 7-8 years. There was more to do and more to improve and advance, and it stalled out for reasons. Now just being a clone wouldn't be enough you need to continue advancing the experience.
Sorry, I’m not proposing a team that not care clone it. I’m hoping that a team that cares very much do so. I agree that UX is the differentiator here.
What I am challenging is the idea that the last 8 years of missed advancement are a requirement. I’m sure there’s necessary under the good improvements; I question if there’s necessary user facing ones. Lots of people (me at least) are very happy with Heroku’s exact current feature set, minus the recent and future stability issues. We just want that to exist forever.
What do you mean? There's so many Heroku competitors these days that the perception has changed towards Heroku being a relic of "how it used to be done". Competitors like Vercel don't just do what Heroku does, they do everything better. (And now edge-first ideas like fly.io are catching on)
Another start-up I've been playing with is Railway, who offers 5-10$ of free usage per month, certainly enough to play with react/nextjs app and a postgres db to your hobbyists hearts content (as long as you turn if off when you're done).
I mean Vercel has a lamdba/serverless feature but you can absolutely point a git repo at it and have it build your site and run your node backend. It's a little more abstracted away, but then again Heroku is just an abstraction on Aws, and the newer era of tools are a bit more abstract than Heroku.
In part, I think development of containers for software has meant its much, much easier today to automate packaging/deployment of web apps in easy to deploy containers that work natively on all the major VPS providers, not just Heroku. My own journey with Heroku certainly largely ended once I was able to replicate much of what I used it for just using docker/docker-compose, occasionally k8s if the size/complexity of project demands it.
Docker/docker-compose has much of the "easy to ship" magic that Heroku had for me in its early years, I very quickly abandoned Heroku for my own container stacks not long after Docker launched in 2013. Its not quite as friendly or easy as Heroku was at its best, but its a completely open format and works with so many different providers etc etc.
When you can just get a database in a container with one line in docker or a handful of lines of yaml in a compose file, the magic of heroku deploying a production database instance easily isn't quite as special as it once was.
That Dokku, the open source Heroku alternative, is at heart a Docker container manager suggests I wasn't the only person with these thoughts.
The problem with straight Docker is you're left to deal with iptables and everything else on your own. Even the self-hosted PaaS offerings don't do a whole lot for you here, either. You're still on your own to configure backups, automatic package updates, system reboots, monitoring (?), and other system admin tasks.
It's borderline on whether Docker is worth it at that scale. You could just as easily setup a git hook to redeploy on push. Maybe use SQLite instead of Postgres. Configure nginx + Let's Encrypt. Without Docker you get sane iptables again, which is a benefit. And systemd can replace most functionality of docker-compose. Plus cron tasks are kinda awkward with Docker, which you'll probably need to do at some point.
I think it's a good question I've thought about and discussed a lot.
I'm not sure.
One guess is that heroku actually started with quite a bit less than we now see -- for instance, initially only supported Rails. The bar was so much lower then, since there had been nothing else like it, that they had enough runway to start with much less than would be "table stakes" today and build up to it.
Also they just had a really really really good team, and really good management that let the team go.
And luck maybe?
Not sure what their funding was, if they had funding runway that's hard to get today for a similar product?
But honestly I don't know. There are several competitors trying. None of them have in my opinion yet reached heroku in DX. And it's hard to talk about because it's not just an issue of listing significant features; it's also a million tiny things that are just right and work together just right.
I think it's _something_ about them being the "first mover", and building out initially when there was pretty much nothing like it, and when expectations were lower.
Installing Dokku [0] is pretty easy on a VPS, and ergonomically it's felt a lot like (a cheaper) Heroku to me (although I only ever used the free apps). I just use the Heroku docs to create apps I can run on Dokku.
Now, you need to deploy Dokku so I get how the two are dissimilar, but I wonder what it would look like for a company to try to offer managed dokku instances (perhaps this is already a thing?).
DigitalOcean for example has one click Dokku installs. They also have the more morern managed containers thing that many PaaS are offering, where you can git push your app and it'll run in a container.
I scoured the internet for the answer to this question years back and remember the answer being that they were using LXC containers, at least on the Cedar stack. This was a little bit before Docker launched.
Im about to go down this path for fun with the saas template I’ve built for myself, but my concern is what am I going to screw up security-wise? Im not an expert by any stretch - I know the basics. I guess we’ll find out!
I just never worried about this with Heroku. I already use the paid tier there for some projects, but the writing seems to be on the wall, so I’m sampling the alternatives. Render is probably where I end up though.
Ya, certainly a concern when going from well-funded org with hired experts to just yourself.
For myself, I just run automated security updates (uptime is not a pinnacle concern for me), do the basic fail2ban set-up, ensure I have a bit of reporting. Most importantly, I pray to Cthulhu I'm enough of a low-priority target that all I need to fend off is drive-by attacks.
I try as much as possible to isolate e.g. credentials and sensitive information from public infrastructure. Everything else that is more sensitive I stick behind tailscale, usually hosted at home on Pis or my NAS.
It seems to me like there’d be a big market for an identical feature by feature Heroku “clone” with a more dedicated (from the outside looking in) team. No more features, no less, just exactly what Heroku did but without the intent to shut down. What’s preventing that from existing?