23 ms·
Replacing a $3000/mo Heroku bill with a $55/mo server
- ed_elliott_asc 1y agoDo they really need a full mirror of production?
- zdragnar 1y agoEvery time I've worked somewhere without one, we've wanted it and wasted more developer hours than the cost of having it trying to reproduce issues while working around the differences in the environments.
- j45 1y agoThe kind of headline that is worth learning more about. Dokku can be an option if needed to maintain heroku endpoints.
- gregsadetsky 1y agoHeya, Disco is the open source PaaS I've been working on with my friend Antoine Leclair. Lots of conversation & discussion about self-hosting / cloud exits these days (pros, cons, etc.) Happy to engage :-) Cheers!
- bstsb 1y agowhat does this service offer over an established tool like Coolify? currently hosting most of my services on a cheap Hetzner VPS so i'm interested what Disco has to offer
- odie5533 1y agoThere's quite a few now. Coolify, Dokku, CapRover, Kamal.
- ajayvk 1y agohttps://devpu.sh/ https://devpu.sh/ is another alternative, it has a nice UI built with Hypermedia (HTMX). I am building https://github.com/openrundev/openrun/ https://github.com/openrundev/openrun/. Main difference is that OpenRun has a declarative interface, no need for manual CLI commands or UI operations to manage apps. Another difference is that OpenRun is implemented as a proxy, it does not depend on Traefik/Nginx etc. This allows OpenRun to implement features like scaling down to zero, RBAC access control for app access, audit logs etc. Downside with OpenRun is that is does not plan to support deploying pre-packaged apps, no Docker compose support. Streamlit/Gradio/FastHTML/Shiny/NiceGUI apps for teams are the target use case. Coolify has the best support and catalog of pre-packaged apps.
- alberth 1y agoOr Dokku, Dokploy or CapRover Would be great to have a comparison on the main page of Disco
- gregsadetsky 1y agoCoolify and other self-hosting options such as Kamal are great. We're all in the same boat! I'd say the main differences is that we 1) we offer a more streamlined CLI and UI rather than offering extensive app/installation options 2) have an api-key based system that lets team members collaborate without having to manage ssh access/keys. Generally speaking, I'd say our approach and tooling/UX tends to be more functional/pragmatic (like Heroku) than one with every possible option.
- Onavo 1y agoThere's also Canine and Kubero https://news.ycombinator.com/item?id=44292103 https://news.ycombinator.com/item?id=44292103 https://news.ycombinator.com/item?id=44873057 https://news.ycombinator.com/item?id=44873057
- JrProgrammer 1y agoThere is also Dokploy which is what I've been using on my homelab for a while. https://dokploy.com/ https://dokploy.com/
- deleted 1y ago[deleted]
- martinald 1y agoJust to be aware when you say "Even with all 6 environments and other projects running, the server's resource usage remained low. The average CPU load stayed under 10%, and memory usage sat at just ~14 GB of the available 32 GB." The load average in htop is actually per CPU core. So if you have 8 CPU cores like in your screenshot, a load average of 0.1 is actually 1.25% (10% / 8) of total CPU capacity - even better :). Cool blog! I've been having so much success with this type of pattern!
- gregsadetsky 1y agoSharp eye! Thanks. Fixed
- __mharrison__ 1y agoThanks for sharing. I have an app I'm working on and this seems perfect for it.
- carzilla 1y agoHi, Interesting project. Do you have any screenshots of the UI of Disco?
- gregsadetsky 1y agoThe microscopic screenshot on the homepage of https://disco.cloud https://disco.cloud is almost everything we have - I really really need to update the docs Oh, there’s actually this tutorial that shows a tiny preview of it: https://disco.cloud/docs/deployment-guides/meilisearch https://disco.cloud/docs/deployment-guides/meilisearch Thanks for the reminder!
- tempest_ 1y agoThe cloud has made people forget how far you can get with a single machine. Hosting staging envs in pricey cloud envs seems crazy to me but I understand why you would want to because modern clouds can have a lot of moving parts.
- odie5533 1y agoFully replicating prod is helpful. Saves time since deployment is similar and does a better test of what prod will be.
- teaearlgraycold 1y agoCompletely agree. It’s not a staging server if it’s hosted on a different platform.
- odie5533 1y agoI think OP is using these less as staging and more as dev environments for individual developers. That seems like a great use of a single server to me. I'd still like a staging + prod, but keeping the dev environments on a separate beefy server seems smart.
- ricketycricket 1y agoI've been using a development server for about 9 years and the best thing I ever did was move to a machine with a low-power Xeon D for a time. It made development painful enough that I quickly fixed the performance issues I was able to overlook on more powerful hardware. I recommend it, even just as an exercise.
- eru 1y agoFor similar reasons, in the Google office I worked in you had the option to connect to a really intentionally crappy wifi that was simulating a 2G connection.
- zachrip 1y agoHeroku's pricing model made me shy away even from using them for small stuff. Why get comfortable on a stack that disincentivizes success?
- nine_k 1y agoNice! Way to go for non-prod environments. (For prod you'd need some redundancy at least.) Quick question: how long would it take to provision and set up another server if this one dies?
- sarchertech 1y agoI bet less time than it takes AWS to recover from a significant event. And I bet it happens less often too.
- odie5533 1y agoIdeally these things should go in an Ansible playbook or whatever people are using these days to manage their pets.
- ygouzerh 1y agoOne thing however to note, is that by having a different non-prod and prod environment, it will be possible to test only the application, and not the infra. Which means, that if they want to test what it will look like running in cloud for prod, they are going to either need a pre-prod environment or go yolo
- gregsadetsky 1y agoThe longest is to adapt your app to a Dockerfile-based deployment, if it isn't already containerized. We have examples for most languages - for Flask, for example, the whole file is 10 lines long [0] But to provision a new server, as these are "stateless" (per 12 Factor) servers, it's just 1) get a VPS 2) install Docker+Disco using our curl|sh install script 3) authorize github 4) deploy a "project" (what we call an app), setting the env vars. All in all ~10 minutes for a new machine. [0] https://github.com/gregsadetsky/example-flask-site/blob/main/Dockerfile https://github.com/gregsadetsky/example-flask-site/blob/main...
- zachlatta 1y agoWe've had a similar experience at Hack Club, the nonprofit I run that helps high schoolers get into coding and electronics. We used to be on Heroku and the cost wasn't just the high monthly bill - it was asking "is this little utility app I just wrote really worth paying $15/month to host?" before working on it. This year we moved to a self-hosted setup on Coolify and have about 300 services running on a single server for $300/month on Hetzner. For the most part, it's been great and let us ship a lot more code! My biggest realization is that for an organization like us, we really only need 99% uptime on most of our services (not 99.99%). Most developer tools are around helping you reach 99.99% uptime. When you realize you only need 99%, the world opens up. Disco looks really cool and I'm excited to check it out!
- mudkipdev 1y agoCan I ask which hetzner instance you use?
- gregsadetsky 1y agoCheers, let me know if you do / hop onto our Discord for any questions. We know of two similar cases: a bootcamp/dev school in Puerto Rico that lets its students deploy all of their final projects to a single VPS, and a Raspberry Pi that we've set up at the Recurse Center [0] which is used to host (double checking now) ~75 web projects. On a single Pi! [0] https://www.recurse.com/ https://www.recurse.com/
- IshKebab 1y ago300 services?? What do they all do?
- zachlatta 1y agoTons of little Slack bots and apps and stuff! It’s a vibrant community and people are always making cool little tools
- notpushkin 1y agoOh hey, you’re not getting booted after all! (Just remember to take regular backups now, so that when this 5 year deal expires you don’t get into the same situation again :-)
- bstsb 1y agoi'd be interested what the load is like on that CCX33 server - i've got a lower-spec VPS from Hetzner and even from there I'm only using about 25%-30% CPU/RAM with a moderate load
- odie5533 1y agoFrom the article: > Even with all 6 environments and other projects running, the server's resource usage remained low. The average CPU load stayed under 10%, and memory usage sat at just ~14 GB of the available 32 GB.
- masterj 1y agoTitle seems slightly exaggerated since by my reading there was no actual $3000 / month bill? Still a great use-case This seems like a good idea to have plentiful dev environments and avoid a bad pricing model. If your production instance is still on Heroku, you might still want a staging environment on Heroku since a Hetzner server and your production instance might have subtle differences.
- SFHacker21 1y agooh good point
- killingtime74 1y agoHetzner cloud has instances in US, which could work since they don't need the stability of dedicated for staging/dev.
- turtlebits 1y agoIt sounds more like poor choices. 6 staging environments sounds a bit overkill. If you can fit them all on a 4 cpu / 32gb machine, you can easily forgo them and run the stack locally on a dev machine. IME staging environments are generally snowflakes that are hard to stand up (no automation). $500/month each is a gross overpayment.
- viraptor 1y ago> you can easily forgo them and run the stack locally Not if you're running with external resources of specific type, or want to share the ongoing work with others. Or need to setup 6 different projects with 3 different databases at the same time. It really depends on your setup and way of working. Sometimes you can do local staging easily, sometimes it's going to be a lot of pain.
- swanson 1y agoI guess I'm not quite understanding why you need six staging servers provisioned at $500 a pop? And if you need that because you have a large team...what percentage of your engineering spend is $3000 vs $100k+/yr salaries? Especially when I got look at the site in question (idealist.org) and it seems to be a pretty boring job board product.
- odie5533 1y agoFrom what I read, they're using them as dev environments. Like running many services at once for a single developer to tie into. That's why they wanted multiple ones, one for each dev.
- ygouzerh 1y agoYes, everyone forget to compute man-days in the cost calculation
- tensor 1y agoThis thinking definitely drives enterprise products, and is exactly what makes it hard for small companies. "You can pay a lot simply because you clearly can afford to" doesn't lead to great products, even if it often does lead to profitable companies.
- gregsadetsky 1y ago6 staging servers: main, dev, and any branches that you want to let other (non tech people) QA. As for the staging servers, for each deployment, it was a mix of Performance-M dynos, multiple Standard dynos, RabbitMQ, a database large enough, etc. - it adds up quickly. Finally, Idealist serves ~100k users per day - behind the product is a lot of boring tech that makes it reliable & fast. :-)
- TechDebtDevin 1y agoyou're telling me 100k people are looking for jobs in non-profits on your specific site daily? Are you sure you don't have a bot/scraper problem?
- hinkley 1y ago> The Real Insight: Staging Became a Free Commodity Not free, it became a productivity boost. You now have a $35k annual budget for the maintenance, other overhead, and lost productivity. What do you spend it on? > The team also took on responsibility for server monitoring, security updates, and handling any infrastructure issues themselves For a place that’s paying devs $150k a year that might math out. It absolutely does not for places paying devs $250k+ a year. One of the great frustrations of my mid career is how often people tried to bargain for more speed by throwing developers at my already late project when what would have actually helped almost immediately was more hardware and tooling. But that didn’t build my boss’ or his bosses’ empires. Don’t give me a $150k employee to train, give me $30k in servers. Absolutely no surprise at all when devs were complicit with Cloud migrations because now you could ask forgiveness instead of permission for more hardware.
- thomasfromcdnjs 1y agoI know everyone in thread today is having fun embracing the hacker ethos and running things themselves. But I've migrated plenty of companies off custom deployment setups to PAAS and told many ceo's simply what OP above has shared. Even a part time dev ops engineer is still $60000 a year, and that can buy us a LOT on PAAS. Using PAAS you can have effectively zero dev ops, I've also trained non technical people on how to scale their own servers if no devs are around because you just have a web based UI slider. I consider myself a developer who cares more about the business, risk, profits and runway. A lot of developers don't share this mentality (which is fine btw always need engineers who like engineering for engineering sakes) but in meetings you will have a hard time beating me in an argument if you try to say that running servers ourselves would be "cheaper", and/or even faster, safer and definitely not more stable. (obviously not in all situations, but kind of most for modern crud web apps that don't require complicated compute setups) I'm probably being overly antagonistic, forgive me for that, though highly recommend questioning the real cost of running your own setups.
- hinkley 1y agoAs a lead or principal dev you are constantly shuffling old problems off to new people so you can stay on top of new or broadening problems. It’s a lot easier to delegate problems if you’ve made them smaller during your watch. I’ve seen enough of the consequences of failure to delegate. But it takes a bit of self awareness to see how being a bottleneck affects other people while or after you are busy unblocking them. Volunteering to be preempted by broken systems more often is a sucker’s bet. Solve problems so they stay solved. It’s more work now, but reduces the interest rate on past work so you can get new things done.
- ygouzerh 1y agoSingle server is very cheap for hobbyist. Just something to consider if you are in a professional environment before switching your entire infra: maintenance cost is expensive. I strongly suggest to throw man-days in your cost calculation. To prevent security vulnerabilities, the team will need to write some playbooks to auto-update regularly your machine, hoping for no breaking changes. Or instead write a pipeline for immutable OS images updates. And it often mean testing on an additional canary VM first. Scaling up the VM from a compute point of view is not that straightforward as well, and will require depending of the provider either downtime or to migrate the entire deployments to a new instance. Scaling from a disk size point of view, you will need to play with filesystems. And depending on the setup you are using, you might have to manage lets encrypt, authentication and authorization, secrets vaults, etc (here at least Disco manages the SSL certs for you)
- ebiester 1y agoIf you are large enough, you will need an ops team to manage allowing your developers to write terraform and manage AWS costs already. If you are small enough, you are not going to be truly affected by downtime. If you are just a little bigger, a single hot spare is going to be sufficient. The place where you get dinged is heavy growth in personnel and bandwidth. You end up needing to solve CPU bound activities quicker because it hurts the whole system. You need to start thinking about sticky round robin load balancing and other fun pieces. This is where the cloud can allow you to trade money for velocity. Eventually, though, you will need to pay up. That said, the average SaaS can go a long way with a single server per product.
- bigstrat2003 1y ago> I strongly suggest to throw man-days in your cost calculation. Only if those man-days actually incur a marginal cost. If it's just employees you already have spending their time on things, then it's not worth factoring in because it's a cost you pay regardless.
- silversmith 1y agoThat's the case if said employees have nothing better to do and are currently twiddling their thumbs. Usually the server maintenance hours come out of project development hours. It's precisely why we moved from a self-hosted demo environment server to heroku - the developers that had both the skills to manage a server and enough seniority to have access accross all the different projects could bring in more by building.
- Tiberium 1y agoThe situation is interesting, and self-hosting is indeed a very nice solution often. However, I wanted to comment on the article itself - it seems to be very heavily AI-edited. Anyone who has spent time with LLMs will easily see it. But even that's not the issue; the main issue is that the article is basically a marketing piece. For example, the "Bridging the Gap: Why Not Just Docker Compose?" section is a 1:1 copy of the points in the "Powerful simplicity" on the landing page - https://disco.cloud/ https://disco.cloud/ And this blog post is the (only) case study that they showcase on their main page.
- AstroBen 1y agoheh my first instinct was to go see how they're making money. Guess that's coming soon
- gregsadetsky 1y agoYou're absolutely right! Here are some three points why: - ... I'm kidding :-) Our library is open source, and we're very happy and proud that Idealist is using us to save a bit of cash. Is it marketing if you're proud of your work? :-) Cheers
- colechristensen 1y agoThere's a tone issue. Marketing should be marketing and clearly so. Tech blogs are about sharing information with the community (Netflix Tech blog is a good example) NOT selling something. Marketing masquerading as a tech blog is offputting to a lot of people. People don't like being fooled with embedded advertising and putting ad copy into such pieces is at best annoying. https://netflixtechblog.com/ https://netflixtechblog.com/
- fragmede 1y agoNah, people are stupid. Including me. It's all marketing. Netflix's tech blog is marketing to engineers to want to go work there and to promote their product. If you want to see things though the lense that all advertising is bad, you'll make your life miserable because it's all advertising in one way or another.
- speedgoose 1y agoLooking at the htop screenshot, I notice the lack of swap. You may want to enable earlyoom, so your whole server doesn't go down when a service goes bananas. The Linux Kernel OOM killer is often a bit too late to trigger. You can also enable zram to compress ram, so you can over-provision like the pros'. A lot of long-running software leaks memory that compresses pretty well. Here is how I do it on my Hetzner bare-metal servers using Ansible: https://gist.github.com/fungiboletus/794a265cc186e79cd5eb2fe896f05168 https://gist.github.com/fungiboletus/794a265cc186e79cd5eb2fe... It also works on VMs.
- cactusplant7374 1y agoWhat's the performance hit from compressing ram?
- speedgoose 1y agoI haven’t scientifically measured, but you don’t compress the whole ram. It is more about reserving a part of the ram to have very fast swap. For an algorithm using the whole memory, that’s a terrible idea.
- sokoloff 1y ago> It is more about reserving a part of the ram to have very fast swap. I understand all of those words, but none of the meaning. Why would I reserve RAM in order to put fast swap on it?
- vlovich123 1y agoSwap to disk involves a relatively small pipe (usually 10x smaller than RAM). So instead of paying the cost to page out to disk immediately, you create compressed pages and store that in a dedicated RAM region for compressed swap. This has a number of benefits: in practice more “active” space is freed up as unused pages are compressed and often compressible. Often times that can be freed application memory that is reserved within application space but in the free space of the allocator, especially if that allocator zeroes it those pages in the background, but even active application memory (eg if you have a browser a lot of the memory is probably duplicated many times across processes). So for a usually invisible cost you free up more system RAM. Additionally, the overhead of the swap is typically not much more than a memcpy even compressed which means that you get dedup and if you compressed erroneously (data still needed) paging it back in is relatively cheap. It also plays really well with disk swap since the least frequently used pages of that compressed swap can be flushed to disk leaving more space in the compressed RAM region for additional pages. And since you’re flushing retrieving compressed pages from disk you’re reducing writes on an SSD (longevity) and reducing read/write volume (less overhead than naiive direct swap to disk). Basically if you think of it as tiered memory, you’ve got registers, l1 cache, l2 cache, l3 cache, normal RAM, compressed swap RAM, disk swap - it’s an extra interim tier that makes the system more efficient.
- 999900000999 1y agoTwo question. What's in it for Disco ? What's the pricing ? How many work hours per month does keeping this thing stable take. If it takes over 15 Heroku is cheaper. Hosting with bare metal is still expensive, you pay in other ways.
- jf93ap29sh 1y agoCool to hear on the savings. But now the team has to maintain two different deployment models, so you have account for the ongoing cost that your team now has to own and maintain two different processes of deployment (prod & staging). The key element here is the need to continuously exercise both processes (Heroku + your staging server), to work out both processes & maintain familiarity on both. Depending on the amount of staff involved in the above, it might eclipse the compute savings, but only OP knows those details. I'm sure they are a smart bunch.
- YouAreWRONGtoo 1y ago[flagged]
- gdulli 1y ago[flagged]
- dang 1y agoPlease don't respond to a bad comment by breaking the site guidelines yourself. That only makes things worse. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html (I've responded to the other commenter elsewhere in the thread.)
- Havoc 1y agoGood improvement, but 50x overpayment until a rethink is also pretty wild.
- gregsadetsky 1y agoFrom having talked to many folks, migrations are psychologically very, very, very very hard. At least, the "fear" factor (will the new system work? what bugs will it introduce? how much time will I spend, etc.) pushes a lot of folks to accept a very big price differential aka known knowns versus unknowns... It's understandable really. It's just that once you've migrated, you almost definitely never want to go back :-)
- deleted 1y ago[deleted]
- Havoc 1y agoOn software stack I definitely get the fear. ...but this CX33 "server" being discussed - is a 6 bucks a month VPS [0] Normally you build a prototype on laptop and move it out to fat hardware when it outgrows that. Here they started with 3k infra and then later realized it runs on toaster. Completely back to front. Maybe they just never iterated on a local version and nobody developed an intuition for requirements. Switched straight to iterating on a nebulous cloud where you can't tell how much horsepower is behind the cloudfunctions etc. Presumably there is a perfectly reasonably explanation and it's just not spelled out, it just seems weird based on given info [0] https://www.hetzner.com/cloud https://www.hetzner.com/cloud
- gregsadetsky 1y agoSmall correction - the blog article talks about a CCX33 (go to "Dedicated General Purpose" [0]) with 32 Gb of RAM, not a "Shared" CX33. [0 ]https://www.hetzner.com/cloud https://www.hetzner.com/cloud
- Havoc 1y ago
- pentacent_hq 1y agoCool project! From looking at your docs, it appears like using and connecting GitHub is a necessary prerequisite for using Disco. Is that correct? Can disco also deploy an existing Docker image in a registry of my choosing without a build step? (Something like this with Kamal: `kamal --skip-push --version latest`)
- gregsadetsky 1y agoCorrect, GitHub is necessary at this point to deploy code. However, yes, you can ask Disco to fetch an existing Docker image (we use that to self-host RabbitMQ). An example of deploying Meilisearch's image is here [0] with the tutorial here [1]. Do you typically build your Docker images and push them to a registry? Curious to learn more about your deployment process. [0] https://github.com/letsdiscodev/sample-meilisearch/blob/main/disco.json https://github.com/letsdiscodev/sample-meilisearch/blob/main... [1] https://disco.cloud/docs/deployment-guides/meilisearch https://disco.cloud/docs/deployment-guides/meilisearch
- pentacent_hq 1y agoYes, I try to keep my CI pipelines somewhat platform-agnostic so even though I'm mostly using GitHub, my workflow is typically to first build a Docker image and push it to a registry, then use Kamal to deploy that image.
- codyb 1y agoAmazing to see this article in 2025. Feel like it's 2015 all over again!
- jdprgm 1y agoJust saw Nate Berkopec who does a lot of rails performance stuff posting about the same idea yesterday saying Heroku is 25-50x price for performance which is so insane. They clearly have zero interest in competing on price. It's a shame they don't just license all their software stack at a reasonable price with a similar model like Sidekiq and let you sort out actually decent hardware. It's insane to consider Heroku if anything has gotten more expensive and worse compared to a decade ago yet in comparison similar priced server hardware has gotten WAY better of a decade. $50 for a dyno with 1 GB of ram in 2025 is robbery. It's even worse considering running a standard rails app hasn't changed dramatically from a resources perspective and if anything has become more efficient. It's comical to consider how many developers are shipping apps on Heroku for hundreds of dollars a month on machines with worse performance/resources than the macbook they are developing it on. It's the standard playback that damn near everything in society is going for though just jacking prices and targeting the wealthiest least price sensitive percentiles instead of making good products at fair prices for the masses.
- czhu12 1y ago> It's a shame they don't just license all their software stack at a reasonable price with a similar model like Sidekiq and let you sort out actually decent hardware We built and open sourced https://canine.sh https://canine.sh for exactly that reason. There’s no reason PaaS providers should be charging such a giant markup over already marked up cloud providers.
- nicoburns 1y agoThis looks decent for what it is. I feel like there are umpteen solutions for easy self-hosted compute (and tbh even a plain Linux VM isn't too bad to manage). The main reason to use a PAAS provider is a managed database with built-in backups.
- gregsadetsky 1y agoFully agreed - our recommendation is to /not/ run your prod Postgres db yourself, but use one of the many great dedicated options out there - Crunchy Data, Neon, Supabase, or AWS RDS..!
- varispeed 1y agoWhy people discover it only today? I remember making comments about it years ago. I even shown one customer that their elaborate cluster costing £10k a month could run on a £10 vps faster and with less headache (they set it up for "big data" thinking 50GB is massive. There was no expectation of the database growing substantially beyond that). Their response? Investors said it must run on the cloud, because they don't want to lose their money if homegrown setup goes down. So there is that.
- Nemo_bis 1y agoYes. The "cloud" is sold on grounds of "efficiency" but really it's just an ideological decision to increase outsourcing and reduce the employees' bargaining power. (Except this backfires, because a service running on a RHEL or Debian machine might go on for 5-10 years untouched without any particular issue, security aside, while anything relying on kubernetes or the hyperscaler's million little services needs to be tweaked every 6 months and re-engineered every few years or it will completely stop working.)
- cpursley 1y agoAny Elixir/Gleam/Erlang (distributed) support?
- gregsadetsky 1y agoI don't know! I do see a Docker image for Elixir, so I'm pretty sure that would work. But the distributed aspect is harder to answer right now. How do you typically deploy this?
- cpursley 1y agoRender (because it's on k8s) and Fly handle distributed erlang out of the box, so I don't have to think much about it. Heroku does not.
- merelysounds 1y agoThe article's title seems inaccurate - as far as I understood there never was a $3000/mo bill; there was a $500/(mo,instance) staging setup that has been rightly optimized to $55/mo before running six instances. > Critically, all staging environments would share a single "good enough" Postgres instance directly on the server, eliminating the need for expensive managed database add-ons that, on Heroku, often cost more than the dynos themselves. Heroku also has cheaper managed database add-ons, why not use something like that for staging? The move to self hosting might still make sense, my point is that perhaps the original staging costs of $500/mo could have been lower from the start.
- gregsadetsky 1y agoI answered elsewhere with the list of dynos, but the short version is that between the list of services that each deployment required, and the size of the database, it truly (and unfortunately) did end up costing $500 per staging.
- cantalopes 1y agoI don't mean to hate but i find it incredibly alarming that i'm lately seeing all the seemingly seniorly positioned people writing articles about how they just realized that you can actually just buy a vps, setup a deployment workflow and write a revealing blog about "drastically cutting costs". It's like juniors who did not recieve a proper training/education got hired into companies where someone told them to go serverless on some heroku or vercel, or use some incredibly expensive aws service because that's a "modern correct way" to do it, except now they were a developer for long enough to get a "senior" title in their job title now are in positions of actually modelling this architecture themselves
- Drunkfoowl 1y ago[dead]
- atonse 1y agoAs one of those people who's experiencing this now (I'm a person who's worked in this industry for 25 years and done everything from colocated servers, to VMs, to VPS's, to AWS/GCP, and now going back to VPS/dedicated), I can tell you it's more of a boiling frog situation. The number of servers slowly grows over time and before you know it, you're spending way more than you really thought about. At a certain scale (or when you do more custom dev), you just don't prioritize it because it's a blip in your financials compared to salaries. And it's not worth spending what might be thousands (or tens of thousands) of dollars of engineering and testing effort to migrate off, when there are other priorities. And one day you (in our case) realize that you're spending $600/month between Linode/AWS/Fly/Render (cuz we experimented a lot), claude code can help you with some of the stuff, and you want to consolidate it all back to the olden days where you just had 2-3 servers paying a total of $60-75 a month . But you still have to set aside probably a day or two to do it (no longer a couple sprints). So then the math works out where we make that money back within a few months. So that's where I am at the moment.
- ksajadi 1y agoIt is clear that Heroku is not interested in reducing their prices. But I don’t think this is a Heroku problem. Vercel is also the same, which makes me think there is a fundamental issue with the PaaS business model that stops it from competing on price while the commoditised part their business (data centers) are always reducing their prices. The challenge I always face with homebrew PaaS solutions is that you always end up moving from managing your app to managing your PaaS. This might not be true right now but as complexity of your app grows it’s almost always the eventual outcome.
- IshKebab 1y agoOn the other hand for $3k/month you can just hire someone to do it for you (part time at least, but I doubt it's remotely a full-time job).
- shdh 1y agoHeroku and Vercel don’t ever have any intention of competing on price They offer convenience
- digianarchist 1y agoIt’s not just convenience. This single box is a single point of failure.
- afro88 1y agoDoesn't staging need to be a (downsized) replica of prod, infra wise to give confidence that changes will be stable and working in prod? Genuine question.
- Ayesh 1y agoYes, I'm just as curious as you on _why_ does a staging setup needs the same amount of resources as prod. All of my staging setups are on a ~$15 Hetzner server, with a GitHub Action to `docker compose build && docker compose up -d` remotely, with an Apache service with a wildcard certificate and dynamic host names. We have 3..n staging setups, with each PR spinning up a new staging site just for that PR. It's been working with us for years, for a team of 10 developers.
- iamjs 1y ago> Bridging the Gap: Why Not Just Docker Compose? The draw of a docker-compose-like interface for deployment is so alluring that I have spent the last year or so working on a tool called Defang that takes a compose file and deploys it to the cloud. We don't support Hetzner (yet), but we do support AWS, GCP, and DO. We provision networking, IAM, compute, database, secrets, etc in your cloud account, so you maintain full control, but you also get the ergonomics of compose. If you are on a PaaS and you want to reduce cost without losing ergonomics and scalability, it might be interesting.
- pier25 1y agoCan anyone comment on how Disco compares to Dokku?
- outside1234 1y agoIt is absolutely nuts to me that this machine: AMD Ryzen™ 7 3700X CPU 8 cores / 16 threads @ 3.6 GHz Generation: Matisse (Zen2) RAM 64 GB DDR4 ECC Drives 4 x 22 TB HDD 2 x 1 TB SSD is only 104 euros a month on Hetzner. The STORAGE alone would cost $1624 a month in most clouds
- Joel_Mckay 1y agoThe connection count costs also balloon on most cloud providers (any busy protocol like telemetry or log-consolidation costs can be huge.) If your group pushes over 23TiB/Month, than most usually look for un-metered colo hosts, and or CDN services with your resource integrity Attribute tags set. Cloud makes sense for small IT shops that can't afford a fully staffed team. The general rule is a 5:1 labor to hardware cost amortized over 3 years. AWS was successful as IT had enormous upfront costs most people found difficult to justify, and data-centers could absorb a DDoS that would be expensive to mitigate. Rule #17: "Only forward meaningful data at every layer of a design, as it often naturally ensures a feasible convergent behavior." There are a number of great options, but depends on the use-cases. =3
- plehoux 1y agoCongrats Greg & Antoine! disco.cloud is really needed, I hope you guys get the visibility you deserve and some momentum from the community!
- deleted 1y ago[deleted]
- morshu9001 1y agoI like Heroku for my needs but have noticed oddities in the pricing that can make a small app cost much more than a differently arranged large app.
- hu3 1y agoVery cool project. Is there an overview of the architecture? Perhaps a diagram or some drawing? I mean something like a list of moving parts so I can understand how it works. Perhaps something like this: https://caprover.com/#:~:text=CapRover%20Architecture%20at%20a%20Glance https://caprover.com/#:~:text=CapRover%20Architecture%20at%2...
- gregsadetsky 1y agoAlthough LLM generated, https://deepwiki.com/letsdiscodev/disco-daemon https://deepwiki.com/letsdiscodev/disco-daemon is pretty impressive and has some arch diagrams. But I fully agree, we should have that on the site. Once everything is installed/running, a very tldr diagram would be: GitHub (webhook on git push) -> Docker swarm running Caddy -> Disco Daemon REST API which will ask Docker to build the image, and then does a blue-green zero-time deployment swap But yeah, a clearer/better diagram would be great. Thanks for the push!
- hu3 1y agoFair enough. That LLM generated doc was surprisingly educational. And your description is a great macro view of it. Thanks!
- joshfraser 1y agoI love the convenience of Heroku but hate their predatory pricing. Who's fixing this?
- gregsadetsky 1y agoYou have your range of options - it depends on the size of your team, the kind of apps you're running, etc. The answer can be anything from an "ssh script" to AWS (or K8S), etc. If you're running something that's too expensive for your taste and can share more information, happy to brainstorm some options.
- stickfigure 1y agoAWS Elastic Beanstalk gives you more or less the same experience but charges you normal EC2 instance pricing. It's as cheap as PaaS gets.
- pier25 1y agoFly was supposed to fix Heroku but my bill more than doubled since they changed how they charge for shared CPUs. https://community.fly.io/t/cpu-quotas-update/23473 https://community.fly.io/t/cpu-quotas-update/23473
- anurag 1y agoI work at Render (render.com); we have over 4 million developers on the platform, and we've migrated many large (and small) Heroku customers over because of our more modern capabilities and scalable pricing. https://render.com/docs/migrate-from-heroku https://render.com/docs/migrate-from-heroku
- Uptrenda 1y agoMight as well ask this: anyone know any server provides that are like half the cost of hetzner. I know that's asking a lot but still.
- gregsadetsky 1y agoI think that https://lowendbox.com/ https://lowendbox.com/ might be a good place to start looking for that
- dabinat 1y agoNetcup is cheaper than Hetzner, but it doesn’t have some of the other features and reviews are mixed.
- selcuka 1y agoI have been using RackNerd for a few non-critical, hobby projects and can't fault them. Their advertised prices are not half of Hetzner, but you can find hidden deals if you do a Google search, or via sites like https://racknerdtracker.com https://racknerdtracker.com (no affiliation).
- IgorPartola 1y agoI was looking on Hetzner after that recent article and their server marketplace has $34/month server that had something like an Intel Core i7 with 64GB RAM and 2x512GB SSDs. Compare that to EC2 pricing.
- cosmin800 1y agoIt is hilarious, don't get me wrong - I really appreciate more people moving away from these "Hi-Tech" deployment styles and cloud services and the rest, but it is like rediscovering hot water.
- shdh 1y agoHeroku is cool in that it helps you get running and autoscaled, but it would be much cheaper for anyone with traffic to just get a dedicated box
- bilsbie 1y agoWhat’s the best alternative to heroku today for someone that doesn’t want to do any sysadmin and just dump a Django site and database somewhere?
- pbalau 1y agoAny place you can get a vps from.
- bilsbie 1y agoWon’t there be ongoing OS updates, database updates etc? If there’s a new security hole do I have to run to a computer and run a patch, etc? I just want someone else handling all that.
- jasoncartwright 1y agoAny VPS you fancy that fits the price/performance/location/support you want, then point Coolify/Dokploy/whatever at it. I did just this using Coolify, Mythic Beasts running Django & Postgres the other month from Google App Engine. Hilariously easy, even with my extremely rusty skills.
- evantbyrne 1y agoIt is worth learning to use Docker Swarm. Deployments are as simple as pushing a new container to your registry and running one command. I built a free CLI tool rove.dev that simplifies provisioning and does service diffing. Either that or use a PaaS that deploys to VMs. Can't make recommendations here but you could start by looking at Semaphore, Dokku, Dokploy.
- sebnun 1y agoI'm looking for simple k8s alternatives like docker swarm and kamal. Rove looks really interesting.
- evantbyrne 1y ago
- clouseauinsp 1y agoI love these types of stories. Please submit more of this type. Bring back sanity to tech.
- deleted 1y ago[deleted]
- monster_truck 1y agoHeroku's pricing is wild. About a decade ago I just about fell out of my chair when I found out the startup I was at was burning upwards of $10k/mo just to generate QR codes (made out of html tables so that they would reliably display in emails). It worked out to something like $0.15/code The lead who wrote it had never even profiled code before, after some changes we cut it down to ~$0.01/per, but that's still insane.
- st3fan 1y agoUhh a “multi-gigabyte Postgres database” is not “substantial”
- vietvu 1y agoQuite sad to see devs nowadays has lost abilities to self-host. I know it can be overwhelming with Linux, networking, db, backup, hardware load.... However, it's not rocket science!
- tonyhart7 1y agonoo UI???? I mean we already have coolify and dokploy that doing the same for more but glad we have new product offering for this
- gregsadetsky 1y agoWe do have a UI, we're just so behind on the documentation, it's not even funny ha. If you setup a server with the curl|sh install script on the homepage, you'll get a url at the end that directs you there. And you can use the CLI too of course. But yeah, thanks for the reminder!
- ThinkBeat 1y agoHosting staging on a fundamentally different architecture and resources than prod (and dev I think) is a disater waiting to happen. Unless they plan to move prod and dev as well, and using staging now as a test platform. Once few problems glitch when moving to prod, they may no longer think they are saving much money.
- hshdhdhehd 1y ago3000 to 55? Par for the course. $55 server $550 aws server $3000 aws based paas server
- Nemo_bis 1y ago> And while Hetzner's price-performance is exceptional, its limited presence in the US was a consideration; for this staging workload, it wasn't an issue, but it's a factor for production services targeting US users. What is this referring to? Concerns about capacity if you need to scale up quickly? Or just "political"/marketing considerations about people not being used to being served by a Hetzner server?
- archon810 1y agoLatency to the US from Europe?
- kristianp 1y agoFrom memory there aren't many dedicated servers available in the US.
- andmarios 1y agoI guess it's latency and data residency.
- gregsadetsky 1y agoCorrect! Re: latency, as I just noted elsewhere, if you run your prod database using Crunchy Bridge or Supabase or another big provider (which you absolutely should for prod), that typically means that your db will be running within an AWS region. You would, in most cases, need to run your compute in the same region. So yeah, at that point, Hetzner would be out.
- jeandejean 1y agoHaving been in the industry for 20 years, I can remember we were processing high loads with... Algorithms. It wasn't a cloud cost saving initiative back then, but a necessity if you had scale, you could just not throw money at scaling. Feels like we shifted optimization from algorithms to cloud costs savings...
- chickensong 1y agoNot just cloud costs. Look at how insanely powerful modern hardware is, yet software performance is... questionable. At least some of us have fast internet to download those 50mb js bundles before a web page loads.
- iDontThink 1y agowow, who have would thought that setting up your own infra instead of paying for it is cheaper.
- iDontThink 1y agoWow, who would have thought that setting your own infra would bring the costs down and more control over it ?
- Copenjin 1y agoHeroku never made sense, that convenience costs too much.
- deleted 1y ago[deleted]
- nklswhl 1y agoI like that this post and the migration focus solely on staging. Far too often, people report how much money they saved by migrating from Heroku/Render/Fly to a VPS with Coolify/Dokploy/Kamal. What these calculations usually fail to take into account is the additional management and maintenance effort required. While this is fine for side projects and non-critical parts (such as staging/preview environments), it represents a significant burden for productive environments with business-critical services. In this case, a correct and understandable decision was made. Thanks for sharing!
- jacob-s-son 1y agoIt’s all fine and dandy, but I wonder why so little discussion around this (mainly high-level comments “DBs are hard”? > disco provides a "good enough" Postgres addon. > This addon is a great way to quickly setup a database when Postgres is not mission critical to your system. If you need any non-basic features, like replication, automatic failover, monitoring, automatic backups and restore, etc. you should consider using a managed Postgres provider, such as Neon or Supabase. How come automatic backups is considered an “advanced” feature? Also I can’t think of a single application since 2012 that I have worked on that did not have a secondary/follower instance deployed. Also suggesting Neon and friends is fine, but I wonder what is your average latency, Hetzner does not have direct connection to the DCs these databases are hosted.
- gregsadetsky 1y agoBackups are only advanced in the context of our Postgres being "Good" enough (maybe our built-in Posgres could be called "Barely enough" but that sounds a bit lame) :-) I fully agree with you though, it's table stakes (unintended pun!) for any prod deployment, just as read-only followers, etc. Our biggest, most important point, is that folks should be using real dbs hosted by people who know what they're doing. The risk/reward ratio is out of whack in terms of doing it yourself. And finally, re Hetzner and cross-DC latency, that's unfortunately a very good issue that we had to plan for in another case - specifically, a customer using Supabase (which is AWS-based). The solution was to simply use an EC2 machine in the same region. Thankfully, some db providers end up being explicit about which AWS region they run in - and obviously, using AWS RDS is also an option! It's definitely a consideration.
- Fanmade 1y agoReminds me of my current customer. We (another freelancer and me) built an application that replaced an Excel sheet, which was the foundation of the business until then. So the usual so far. We have a policy that our customers are responsible for all their business-related input, but we make the decisions about the technical implementation. Every technical decision that the customer wants to make basically costs extra. In this case we built a rather simple multi-tenancy B2B app using Laravel, with one database per tenant. They planned to start with a single customer/tenant, scaling up to maybe a few dozen within the next years, with less than a hundred concurrent users over the first five years. There were some processes with a little load, but they were few, running less that a minute each and already built up to run asynchronous. We planned a single Hetzner instance and to scale up as soon as we would see it reaching its limits. So less than 100 €/month. The customer told us that they have a cooperation with their local hosting provider (with "special conditions!") and that they wanted to use them instead. My colleague did all the setup, because he is more experienced in that, but instead of our usual five-minute-setup in Forge (one of the advantages of the Laravel ecosystem), it took several weeks with the hosting provider, where my colleague had to invest almost full time just for the deployment. The hosting provider "consulted" out customer to invest in a more complex setup with a load balancer in front, to be able to scale right away. They also took very long for each step, like providing IP addresses or to handle the SSL certificates. We are very proud of our very fast development process and having to work with that hosting provider cost us about one third of our first development phase for the initial product. It's been around two years since then. While the software still works as intended, the customer could not grow as expected. They are still running with only one single tenant (basically themselves) and the system barely had to handle more than two concurrent users. The customer recently accidentally mentioned that they pay almost 1000€/month for the hosting alone. But it scales!
- gregsadetsky 1y agoSuper interesting, and truly unfortunate when that happens! Just thinking about having to wait for SSL certificates like in the old days (versus Let's Encrypt) would frustrate me to no end. Forge seems like a great integrated solution (I subscribe to their newsletter and their product updates seem quite frequent and useful). What's been your experience with them? Any particular things you like, or dislike about them? I'm also curious when you talk about scaling up Forge - is that something you've done, and is that generally easy to do? Thanks a lot!
- abdellah123 1y agoWith hetzner AX162-s [1], 1TB DDR5, ($600/month) you can load your freaking database in Memory and not blink !! I don't understand why people go to cloud. [1] https://www.hetzner.com/dedicated-rootserver/ax162-s/configurator/#/ https://www.hetzner.com/dedicated-rootserver/ax162-s/configu...
- system2 1y ago<3 Hetzner
- dirkc 1y agoI'd like to nit-pick a little about the title. They replaced a $500/mo bill with a $55/mo server. And at the same time increased what they could do before - run 5 extra staging environments! While saving $445/mo isn't nothing, in my book enabling teams to freely run the staging environments they need is the real win here! Limiting testing resources can be a real drag on momentum in a project!
- pikzel 1y agoAnd they're now running all environments on a single machine! The bigger blast radius the better, right? Right...?
- h33t-l4x0r 1y agoHetzner is flaky though, you can't trust them. You don't want your website taken down because they decided something is suspicious and they randomly banned you without warning.
- JrProgrammer 1y ago<Insert every cloud provider here>. There are countless posts on HN that describe people and businesses being blocked by a cloud provider like GCP. Hetzner is by all means not an outlier.
- h33t-l4x0r 1y agoThey are for me. Got banned and received the explanation that my actual billing details were suspicious (there was nothing suspicious other than possibly my geolocation which is SE Asia). I asked them to clarify and they declined. Signed up with Contabo without incident and have been a happy customer ever since. Look, whether or not Hetzner chose to block me out of blatant geo-racism is not at issue here, I wouldn't want to do business with them either way since they declined to give me a reasonable explanation and I wouldn't feel secure with a provider like that.
- devops000 1y agoYou could use Cloud66 or Kamal to make it even easier
- BilalBudhani 1y agoI recently moved a couple of Rails projects to a VPS using Dokploy and couldn't be happier. Apart from the cost savings the bump in available resources is a big plus. It is astonishing how Heroku still gets away with 512 mb memory for $25/m background: I have been self-hosting apps on VPS for a while now but just started using a tool
- simianparrot 1y ago> Each new staging environment still required DNS and CDN configuration - not difficult, but not automatic either. The team also took on responsibility for server monitoring, security updates, and handling any infrastructure issues themselves - operational overhead that Heroku had previously covered. And while Hetzner's price-performance is exceptional, its limited presence in the US was a consideration; for this staging workload, it wasn't an issue, but it's a factor for production services targeting US users. If you factor in salaries, I can see this ending up costing more than Heroku. $3000/m is one (underpaid) developer here in Scandinavia. That's the equation that's often lacking, and why Heroku is still worth it where I work.
- 7222aafdcf68cfe 1y agoWe'll soon go full circle and people will discover sysadmin skills.
- jbs789 1y agoThese discussions often devolve into how Heroku is “expensive”. You’re paying for convenience and not having to worry about something. Every business will evaluate this for themselves. For a profitable business with a lean team, Heroku works great.
- greenie_beans 1y agorecently migrated from heroku to digital ocean. saw immediate performance gains with my etl as soon as i made the migration. will never look back!
- amai 1y agoSo how does disco compare to e.g. coolify, dokploy, dokku, kamal, uncloud or sliplane.io?