We’re excited to announce that the Cedar-14 – the new version of the Celedon Cedar stack – is ready for general availability and is now the default stack on Heroku. Cedar-14 is based on the latest Ubuntu LTS Linux version and comes with a modern set of libraries and system dependencies that will stay current and updated for a long time to come.

Since we announced the public beta of Cedar-14 three months ago, we have migrated most of the apps that we run on Heroku to Cedar-14 (yes, a lot of Heroku runs on the Heroku platform) and thousands of users have also moved apps or created new Cedar-14 apps. We have worked with these early adopters and with buildpack maintainers to weed out bugs and...


Performance is important, and if we can't measure something, we can't make it fast. Recently, I've had my eye on the ActionDispatch::Static middleware in Rails. This middleware gets put at the front of your stack when you set config.serve_static_assets = true in your Rails app. This middleware has to compare every request that comes in to see if it should render a file from the disk or return the request further up the stack. This post is how I was able to benchmark the middleware and give it a crazy speed boost.


Heroku Connect is written primarily in Python using Django. It's an add-on and a platform app, meaning it's built on the Heroku platform. Part of our interface provides users with a realtime dashboard, so we decided to take advantage of socket.io and node.js for websocket communication. But like all Heroku apps, only one type of dyno can serve traffic. This left us with two choices: manage 2 apps, each with its own repo, and carefully consider when and how we deployed them, or find a way to serve both node and Django traffic from the same app.



A quick glance at most any phone shows the importance and urgency – for businesses of all kinds – of creating mobile customer apps. Our everyday activities – finding a ride, ordering a meal or turning on a light are increasingly mobile experiences.

But delivering a great omnichannel experience to customers requires more than just the work of the application developer. The larger organization is involved in following up with prospects, fielding service inquiries, and sending relevant marketing messages. Orchestrating this tapestry of touchpoints often requires developers to integrate with systems used by non-developers, including sales, service, marketing and community management systems....


Browse the blog archives or subscribe to the full-text feed.