You’ve probably scanned the emails, seen the banner in the dashboard, or read other articles… Heroku’s new platform is coming soon and promising a lot of big changes. If you’re like us, you’re probably feeling some tension. On one hand, Heroku remains the most seamless PaaS experience and we still recommend them for new apps. On the other, Heroku’s product really hasn’t changed much at all in about a decade. Generally, that’s a good thing, but we’ve wondered what the team at Heroku has been doing with their development time these last few years…
Turns out, the answer is “Fir” — the codename for the new application stack. And, being that Cedar was launched in early 2011, this is a pretty big deal. While Heroku had some traffic and popularity in >=2011, essentially the entirety of Heroku as we know it today was built on Cedar. So making a huge change after 14 years is big news!
But let’s jump straight to our interesting findings here. First, there’s not a ton of documentation out about Fir quite yet. At the moment (Jan 2025) it’s in early beta for private spaces users — that’s it. So there’s a ton we still don’t know. But, there are some docs starting to get released and give us some teasers of what Fir might have in store. Here’s what we’ve found so far…
Modern Hardware (Finally!)
First, Fir is ARM-based, not x86 based. Given the absolutely astounding level of developing happening in the ARM world since 2019 (thanks Apple!), this is neat to see. This means that our dynos will be running on newer hardware — likely AWS’s Graviton ARM processors. And it means that our dynos will be running on more efficient hardware, both in terms of resource utilization (CPU and RAM footprints) and in terms of cost. More on that later.
More Dyno Choices (Yes!!)
One thing that stood out to us very quickly was how many dyno tiers we’ll apparently have available to us in Fir. Check out this chart (source):
If we ignore the two “Classic” options (which are likely just to have parity with Cedar for apps migrating over and not yet sure which new dyno class to go with), we’re left with three groups of five:
General Purpose (GP) dynos (balanced CPU and RAM… sort of)
Compute-Heavy dynos (biased towards 2x the compute cores from GP)
Memory-Heavy dynos (biased towards 2x the memory from GP)
That’s fifteen individual dyno tiers to work with! And while a few of these seem a little odd (2X-General: 8GB of memory for only 2 processes?), ultimately having lots of options purely helps the consumer. And, compared to Cedar stack dynos, we’ve got way more memory to work with across the board here. Where Standard-1X had only 512MB of memory and “1x Compute” (which is allegedly similar to saying ‘1 core’?), we now have the 1X-General option for a single core with 4GB of memory! That’s 8x more memory than before!
Isolated Cores? (😱)
We clipped a screenshot of the dyno choices chart above, but on the source page it came from, there’s a callout right above it:
👀 Note
All Fir dynos are dedicated compute resources and are only available with Fir-generation Private Spaces.
Combine that implication with the fact that the dyno chart CPU column is labeled “cores” and not Heroku’s traditional, vague “compute” metric for the current class of dynos:
And I think it really means that every dyno class on Fir will have truly isolated (to the extent the container manager can manage) CPU resources. If that’s anything like the isolation that our current Performance dynos get, this is going to be fantastic and should virtually end Heroku’s noisy neighbors problem.
Now, we should take a grain of salt here. The Cedar stack also offers dedicated compute for Private Spaces. We don’t know for sure if the Fir stack will retain dedicated compute resources in the common runtime for your everyday apps. But we sure hope so. This would be an incredible improvement on the current shared hardware: Standard-1X and Standard-2X. The noisy neighbors problem with those hardware tiers can get pretty bad.
The Great Pricing Reset?
This is the one area of the new-Fir-stuff that we don’t know much about yet. We haven’t found any docs here and we don’t know what the Fir-Private-Spaces pricing is (though that likely wouldn’t matter for common-runtime pricing). What we do know is that it seems like Heroku will be moving to a credits-based model rather than flat $/mo-per-tier. The dynos chart above has a column for “Dyno Units Consumed” that scales with compute+RAM tiers — so that’s almost certainly the billing style we should expect with Fir.
Billing logistics aside, we’re hopeful that the transition to Fir will be the great ‘cost-to-value reset’ that many folks have been waiting for. It’s no secret that Heroku’s dyno pricing, especially for the quality of hardware underlying those dynos, is a bit absurd. Heroku absolutely continues to provide tons of value with its PaaS approach, even on Cedar… but we’re hoping that things reset a bit on Fir. Ultimately, since we anticipate the quality and value of the dynos to be drastically better (see much higher compute and memory notes above), it’d be fantastic if Heroku’s pricing for Fir is relatively the same as Cedar has been.
Bring on Fir!
Fir represents a major shift for Heroku — one that’s been a long time coming. For those of us who’ve stuck with the platform through years of relative quiet, this feels like the beginning of a new chapter. Modern hardware, clearer dyno tiers, and hints at better resource isolation? Yes, please.
But like any significant change, it’s too early to predict all the ways this will impact developers and businesses that rely on Heroku daily. Pricing, feature parity, and migration challenges are all still question marks. That said, we’re optimistic. Fir is a sign that Heroku is evolving, not fading.
So, let’s welcome the new stack with cautious optimism and a dash of excitement. After all, a platform that continues to invest in itself, even after a decade of dominance, is worth keeping an eye on. Bring on Fir — we’re ready.