Continuous Rambling

Continuous Rambling

Share this post

Continuous Rambling
Continuous Rambling
Why We Left Heroku
Copy link
Facebook
Email
Notes
More
User's avatar
Discover more from Continuous Rambling
Writing about developer tools, startups, SaaS, CI/CD, and every problem I encounter.
Already have an account? Sign in

Why We Left Heroku

A Tale of Contracts, Challenges, and Change

Julien Danjou's avatar
Julien Danjou
Jan 28, 2025
2

Share this post

Continuous Rambling
Continuous Rambling
Why We Left Heroku
Copy link
Facebook
Email
Notes
More
Share

In January 2023, everything was smooth sailing for Mergify. Our infrastructure was humming along on Heroku, a platform we had trusted for over three years. Heroku was once the go-to choice for startups—simple, reliable, and developer-friendly. We were happy customers, growing steadily and paying our invoices month-to-month.

Then things started to change.

The Start of a Rocky Relationship

In early 2023, Heroku reached out with an enticing offer: transition from month-to-month billing to an annual Heroku Enterprise contract. The deal included significant discounts on everything—dynos (containers), databases, and add-ons—in exchange for a one-year commitment to a certain number of resources.

We were told we’d be allowed to overuse our resources up to 30% during the year without being bothered—with the understanding that if we grew beyond that, the contract would be adjusted fairly in the next cycle.

It sounded like a win-win.

We signed the contract and carried on. For the first year, everything was fine. By the end of 2023, we had indeed surpassed the 30% growth threshold, but Heroku didn’t reach out. The contract auto-renewed, and we moved into 2024 with no issues.

That was until the automated emails started arriving.

A Series of Surprises

In May 2024, we received an automated email from Heroku. It informed us that the discounts on our containers were being rescinded, effective immediately. Naturally, we contacted Heroku’s support team to understand how that would affect our current contract and were redirected to a new account executive to clarify.

Their explanation was straightforward: we had doubled our usage, and they wanted us to pay the difference for the current contract term—for the next 9 months.

While this was unexpected, we decided to comply. We signed an amendment to the contract and paid the outstanding amount. We chalked it up to a policy change, and, as Heroku has been fair so far, we decided to move on.

But then, in October 2024, another email arrived. This time, Heroku announced that discounts on add-ons, such as PostgreSQL databases and Redis, would also be removed. Once again, we reached out to their team for clarification.

This conversation, however, was very different.

The Heroku automated email we received

When Contracts Don’t Matter

Our current account executive explained that the discounted add-ons we had purchased as part of our original enterprise agreement were no longer “fair” for Heroku.

Indeed, two years before, our previous account executive offered us a 60% discount on the listed price, which was a power move to make us commit for a whole year to the platform. A practice that worked: we committed to Heroku, and the account executive won a “top deal France SMB” award at Heroku.

But now, Heroku wanted us to pay the full price for these services, even though our contract explicitly stated otherwise.

We reminded them of the terms we agreed to in the contract, but their response was, essentially, “it’s not fair for us anymore.”

I spent a lot of time trying to understand how getting a few thousand euros more from a loyal startup would impact Salesforce P&L, or how bullying us into paying money we didn’t owe would help our account executive gain respect from their boss, with no luck.

Despite their efforts to pressure us to pay more, we held firm. A contract is a contract, and we weren’t going to be oppressed into paying for something that wasn’t part of the original agreement.

However, at this point, it was clear that Heroku was no longer a reliable partner for us. Their lack of stability, constant policy changes, and disregard for contractual terms made it impossible to trust them with our infrastructure.

The Move Away from Heroku

By late 2024, we made the decision to move Mergify’s infrastructure to Google Cloud Platform (GCP). Migrating a live product is never easy, but it was the right choice. Heroku, once the pioneer of developer-friendly hosting, had stagnated. The platform’s lack of innovation, combined with its increasingly unpredictable business practices, made it clear that it was time to leave.

GCP offered the flexibility, scalability, and reliability we needed to grow. The migration was a success, and while it wasn’t a move we originally planned for, it’s one we’re glad we made. Google helped us a lot in moving to their platform, which made the whole process smooth.

Reflections on Heroku

Despite the rocky ending, it’s important to acknowledge Heroku’s role in our journey. The platform played a significant part in our early success, providing the simplicity and ease of use that helped us focus on building our product. For small apps and early-stage startups, Heroku can still be a good choice.

But over time, Heroku failed to evolve. As the tech industry moved forward, Heroku seemed to stand still. Features stagnated, the platform became less relevant, and dealing with them as a customer grew increasingly frustrating. In 2025, it’s hard to recommend Heroku as a reliable choice for scaling companies.

Advice for Other Startups

Our experience with Heroku taught us some valuable lessons:

  1. Beware of Contracts with Large Companies: Big corporations can change their terms, policies, or priorities on a whim. Make sure you fully understand the risks before signing long-term agreements.

  2. Stand Your Ground: If a vendor tries to pressure you into unfair terms, don’t be afraid to push back. Contracts exist for a reason. Be ready to jump and save your ass.

  3. Choose Platforms That Grow with You: Heroku was perfect for us in the beginning, but as our needs grew, it became clear that we needed a more robust and innovative platform.

For startups navigating similar challenges, remember that your infrastructure choices are critical. Hosting platforms should be partners in your growth, not obstacles.

Final Thoughts

Leaving Heroku wasn’t an easy decision, but it was the right one for Mergify. We’ve learned a lot from this experience, and we’re excited about what’s ahead with our new infrastructure.

If you’re a startup considering Heroku—or debating whether to stay or move on—ask yourself this: is your hosting platform helping you scale or holding you back? At the end of the day, it’s all about finding a partner you can trust to grow with you.


Subscribe to Continuous Rambling

By Julien Danjou · Launched a year ago
Writing about developer tools, startups, SaaS, CI/CD, and every problem I encounter.
Michael Montoya's avatar
Michael P's avatar
2 Likes
2

Share this post

Continuous Rambling
Continuous Rambling
Why We Left Heroku
Copy link
Facebook
Email
Notes
More
Share

Discussion about this post

User's avatar
There's (almost) no GitLab
A word on a French bias.
Oct 29, 2024 • 
Julien Danjou
3

Share this post

Continuous Rambling
Continuous Rambling
There's (almost) no GitLab
Copy link
Facebook
Email
Notes
More
A Decade of Writing Books and Selling 25,000 Copies
Reflecting on the Journey and Impact of Writing Technical Books.
Jun 12, 2024 • 
Julien Danjou
5

Share this post

Continuous Rambling
Continuous Rambling
A Decade of Writing Books and Selling 25,000 Copies
Copy link
Facebook
Email
Notes
More
How to Be a Great Software Engineer
There is more than one way.
Sep 3, 2024 • 
Julien Danjou
5

Share this post

Continuous Rambling
Continuous Rambling
How to Be a Great Software Engineer
Copy link
Facebook
Email
Notes
More

Ready for more?

© 2025 Julien Danjou
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More

Create your profile

User's avatar

Only paid subscribers can comment on this post

Already a paid subscriber? Sign in

Check your email

For your security, we need to re-authenticate you.

Click the link we sent to , or click here to sign in.