Readit News logoReadit News
marvinkennis · 3 years ago
Heroku has been an absolute dumpster fire. Every time their name comes up I can't help but mention that they deleted my account for inactivity, but have still been charging my credit card. No easy way to cancel because... they deleted my account.
echelon · 3 years ago
Netlify did this to me too!

I have my startup with them and pay them a hefty bill. I had my personal websites on a second account (that should have been a free plan - one deploy every three years, next to zero traffic), and they deleted them and continue to bill me.

I've had multiple customer service interactions asking them to stop billing me and they're nothing short of rude and unhelpful. "We've told you the dozens of steps to take to get us to stop billing you" kind of responses from their top CS head. (Paraphrasing that quote, though I'm sure "we told you" is verbatim).

I think I tripped their janky system up when I started scaling one of my personal projects into a startup. I converted my personal account into my business account and moved my personal websites into a new account. This totally botched their system. The thing that gets me is how unhelpful they've been in dealing with the matter. It's not like any of this is my fault.

As soon as I get bandwidth to take my startup elsewhere, I'm gone and I'm never looking back. It's amateur hour over at Netlify. They're downright unpleasant to deal with.

I'm warning everyone I know to avoid them.

lloydatkinson · 3 years ago
I have been mulling over switching from Netlify to Vercel for a while for my personal site too.

Netlify has weird defaults for everything. It caches almost nothing by default. I had to create a Netlify headers file to tell them that actually yes I would like my CSS, JS, and fonts cached.

Absolutely absurd I had to do that. Even for font files. Because as we all know, the font files change so often that we should never cache them /s

All manner of dumb things like this. Really the only thing keeping me on Netlify is that it has for handling built in. That and fear of changing DNS settings (I use Google domains).

iJohnDoe · 3 years ago
I’ve always thought positively about Netlify. About to launch my startup there as well.

I was thinking about using their identity and access plug-in to build out member access only pages. Would Render have this capability? Or any other non-code recommendations?

ranting-moth · 3 years ago
File a chargeback each time they charge your card. The merchant has to pay the transaction fees both ways and a fee for the chargeback.
joering2 · 3 years ago
But don't do it if its Google. I had been charged for g-suite for domain that expired and someone else picked it up (and parked), long story short after 3 months of back-and-forth with "support" I gave up and started with chargebacks. It was 7 of them, each month one for $6, until one sunny day I woke up and my own gmail account, my youtube TV and Google Play on 2 Android devices all got blocked with messages popping up I never seen before. Also my friend - who used my wi-fi plenty when we worked on a project together, got his gmail frozen with equally weird messages with no answer how to appeal or follow up. Just middle finger and good bye.

edit: and no, they did not stop charging me for youtube TV. I actually had to get a new card number for my credit card for them to stop.

djbusby · 3 years ago
Gotta chargeback and tell the CC company to block. Then file complaint with their states AG.
ewgoforth · 3 years ago
Not necessarily easy, but you can dispute it with your credit card company.
maushu · 3 years ago
This is why I use the git commit short hash as part of the identification of the service (eg: container name). Allows for quick check of which is the running code version and identify problems like these.
rcarmo · 3 years ago
Wouldn’t help in this case if you redeployed the same version. I usually log the PID and some form of host ID.
zacksiri · 3 years ago
That’s smart. I like it.
bomewish · 3 years ago
So you have to constantly rename it with each commit or what?
EntrePrescott · 3 years ago
Kinda refreshing - within the ever growing genre of stories about Heroku's downfall into junk status - to find such an article with a higher level of detail and analysis of the origins of the problem.

There's one thing that somewhat surprised me though: this line:

> "In 2018 Heroku was pretty much the only option for a newbie like me to get started with web-development"

Was it? Really? I mean, I'm not saying the author did anything wrong in choosing Heroku at the time (after all, who could have known back then what a dumpster fire Heroku would turn out to be), and the commercial success Heroku achieved before going down the gutter shows that it must have had some good reasons going for it, at least on paper before the users are confronted with problems that make them judge the situation differently…

… but I don't really get where that "pretty much the only option" vibe would come from. Maybe It's just me having completely different selection criteria, but from my perspective, there were lots of other options to "get started with web-development" and Heroku was just one among many. I don't see at all by what measure Heroku would have seemed like "pretty much the only option"?

danjac · 3 years ago
Let's say you have never deployed anything to production before, and you've worked through a tutorial in Rails or Django or whatever and just built your first web app, and it's 2018, what are your options?

There's the zoo of AWS. Maybe there's something there you can use - Lightsail came out I think in 2016 - but good luck trying to find it out of all the plethora of weirdly named services. Again, total beginner here, and AWS can be daunting even to experienced developers.

You can go with Linode or Digital Ocean. You would need to set up a VM with all the dependencies and make it secure. Oh and you'll need a database - should that sit on another VM? What about backup and restore? What about deployment? Sure, you can use Ansible, but that's yet another learning curve.

Render launched in 2019. Fly.io came out 2020. As far as I remember, there wasn't a competitor that offered the sheer convenience for the hobbyist beginner on the level of Heroku.

post-it · 3 years ago
> You can go with Linode or Digital Ocean. You would need to set up a VM with all the dependencies and make it secure. Oh and you'll need a database - should that sit on another VM? What about backup and restore? What about deployment? Sure, you can use Ansible, but that's yet another learning curve.

An interesting perspective. I started using Linux as a kid, long before I started programming. When I wrote my first webapps, setting up a VM and database was the easy, familiar part. (I didn't really care about securing it.) It makes sense that if someone's first delve into any technical field is writing webapps, setting up a VM and database would be daunting.

rtsil · 3 years ago
Ten years before that, I rented a cheap dedicated server and learned to use Webmin and Virtualmin. And it wasn't particularly complicated, Virtualmin gave you everything you needed with minimal configuration and you could find plenty of help online for the rest.

And it gave you a certain idea of how it worked, instead of operating on a black box.

tmpz22 · 3 years ago
> you've worked through a tutorial in Rails or Django or whatever

People underestimate the momentum of educational content. The Ruby on Rails tutorial book is a perfect example of guiding people into the Heroku walled garden - and at the time it was a reasonable decision that benefited the readers and (IMO) helped encourage them to go beyond starter-apps and actually put something in the wild.

cooljacob204 · 3 years ago
I used a digital ocean ubuntu droplet with haproxy and certbot back when I first started off. Used their Postgres service for the database and only opened port 443 and 80 to public traffic. Droplet backups for backups if the vm needed and deployments were a manual git pull.

Sure a little complicated but there are plenty of good tutorials out there.

I would say Heroku for a new dev is not actually ideal. It hides way too much of the inner workings and makes it harder to learn about web development. I think it's more appropriate for a startup which just wants a ci/cd pipeline and some redundancy without investing that much time into it.

govolckurself · 3 years ago
Why is "learn more about how to properly host something" never an option for people? And in 2018! Suck it up and learn how to secure a VM, folks, especially if you're turning tutorials into production services. Most of those issues don't just go away when someone builds yet another expensive abstraction on top of a server, I promise.
jazzyjackson · 3 years ago
Assuming they wanted a webserver + database and wanted to learn web stuff, not server admin / unix stuff to configure a LAMP stack or whathaveyou + certbot etc. Deploying on your own domain of legitimately daunting without a lot of prerequisite knowledge. Heroku automated a lot of that and some people learned it as the only way to deploy without learning the manual process first, and that's fine IMO.
shibel · 3 years ago
Hi. I’m the author. First off, happy to hear you find that refreshing - it’s a really nice compliment to hear!

I, like you, hate blanket statements. Perhaps I should I’ve emphasized a newbie like me in that sentence? I really knew next to nothing about how web development, and specifically serving your site from a server, works.

hot_gril · 3 years ago
What's an alternative to Heroku with the same level of ease and establishment? AppEngine is established but not easy, for example.

I still have some smaller projects running on Heroku. Was running a mid-scale one that we shut down for unrelated business reasons. It's been fine.

paxys · 3 years ago
Yeah I'd only agree with that statement in like 2009. By 2018 there were a hundred equally fully-featured PaaS options to choose from.
jchw · 3 years ago
In case it's not clear from the article, Nixpacks build OCI (essentially, Docker) images, so they are perfectly vendor neutral as far as I know. The ending ambiguously implies that Nixpacks may be undesirable vs using Docker, but actually it's just another way to build an image. Fly.io supports Nixpacks out of the box too, I believe, which makes it even easier to use them with Fly (although, you can also just push an OCI image directly to the fly.io registry and deploy with that, which I have been experimenting with in spare time as an option for using Nix itself to build an OCI image for Fly. I'm sure there will be an even nicer way some day, but it works for now...)

I'm sure the author knew this, but I wanted to iterate it in case anyone misunderstood.

shibel · 3 years ago
OP here: I agree my phrasing is kind of problematic. Will rephrase shortly. Thank you for bringing that up.
akhayam · 3 years ago
Everyone can relate to the sad demise of Heroku at this time. Sad, because they could've dominated this space which still has a lot of issues.

Yet-another-infrastructure-group nailed it in their graphic about "what your infrastructure says about you?"... "Heroku => "You are either negotiating the pricing or deplatforming" https://www.yaig.dev/

lorenzk · 3 years ago
Not sure if you have done this already but: If you rotate your database, redis and email provider passwords/tokens, the zombie process might still be running but will not have any effects any more.
shibel · 3 years ago
OP here: that’s a good idea that did come up to mind (specifically rotating the Redis queue credentials). I was just sure Heroku’s gonna take care of this shit by now.

BTW, I’m not 100% sure it’ll work: if Heroku updates that zombie dyno’s environment variables, it may still have access to the new credentials :/ (My Redis instance is also a Heroku add-on)

neurostimulant · 3 years ago
> BTW, I’m not 100% sure it’ll work: if Heroku updates that zombie dyno’s environment variables, it may still have access to the new credentials :/ (My Redis instance is also a Heroku add-on)

If the configuration only read once during startup, the celery process won't use the new configuration unless it's restarted, right?

gsa · 3 years ago
Rotate a token, but also mangle it and change to the correct one in code. eg: change database url from `postgres://` to `invalid://` and replace it in code.
domh · 3 years ago
This is a really smart idea! If you can't kill the process, make it completely ineffective by making it's api calls fail.
dentarg · 3 years ago
Probably related to https://status.heroku.com/incidents/2531 ("On April 6, 2023, between 21:20 UTC and 22:30 UTC, our Common Runtime customers were unable to provision dynos in the US and EU regions. This issue impacted starting/scaling dynos in existing apps, one-off dynos, builds, and release phases.")
vinhboy · 3 years ago
Similar thing happened to me. Took a long time to realize there was a zombie Heroku instance running jobs.

That horror when you delete code but it's still running, you're just so confused...

I've forgotten how I resolved it, but man it was a pain to diagnose.