New scale-to-zero compute, spending limits, and a $5 Starter plan are now available on Cloud. Learn more

How Roomies Cut Compute Costs 80% and Unlocked Nightwatch

When Dwight Watson and the team at Roomies started preparing to leave Heroku, their platform was handling approximately 135 million web requests per month and processing four million jobs per day.

80%
reduction on infra costs
135M
requests/month handled by Cloud
12x
larger cache capacity for less $

Costs were becoming harder to justify, and performance was also an ongoing frustration. Slow queries, lagging read replicas, and missing Laravel-native features made the move inevitable.

Today, Roomies runs entirely on Laravel Cloud:

  • Compute costs dropped 80%, from roughly $1,000/month on Heroku dynos to $200/month on Cloud.

  • Cache capacity increased 12x for less money: $180/month for 12 GB on Laravel Valkey, compared to $200/month for 1 GB on Redis on Heroku.

  • ~135 million requests per month across all eight Roomies sites, now handled with minimal manual intervention by a two-person engineering team.

  • Roomies can now run Laravel Octane and Laravel Nightwatch, both of which were incompatible with their Heroku setup.

  • Two N+1 issues on their highest-traffic pages were caught within 30 minutes of enabling Nightwatch.

Read our comparison to see how Laravel Cloud stacks up against Heroku.

Roomies: Team and Background

Roomies is a platform that connects people looking for roommates. Founded in 2016, it launched in the United States and expanded to Canada, Singapore, Ireland, India, New Zealand, South Africa, and the United Kingdom.

The team is nine people in total, spread across the world, with two in engineering, including Dwight, who’s also the company’s COO.

Heroku’s Limitations and Performance Issues

Roomies had run on Heroku since launch, with all eight sites on a single Heroku app backed by Redis on Heroku and Postgres. As the platform grew, they scaled up, but costs were rising, and performance problems kept creeping up.

"We had repeated instances where our database performance dropped to an absolute crawl, or the database followers fell so far behind they became unusable," Dwight explained. These were recurring events on a platform that could not be fixed with a bigger dyno.

Beyond performance, Heroku was limiting what Roomies could build with. The team wanted to run a scheduler that fires every minute, Laravel Octane for improved app performance, and Laravel Nightwatch for application monitoring. None of them worked reliably on Heroku.

Literally within half an hour of running Nightwatch on Roomies, we identified two painful N+1 problems.

"There were Laravel features we wanted to take advantage of but were prevented from using," Dwight said. Each workaround added configuration overhead, and the codebase accumulated hacks to make Laravel behave on a platform it was not built for.

When Heroku announced it would no longer sign new enterprise contracts, the evaluation process already underway reached its conclusion.

Moving to a Cloud Platform Built for Laravel

Two things defined what Roomies needed: a platform where Laravel features worked without workarounds, and one that could handle their scale without manual intervention.

The Scheduler, Octane, and Nightwatch

On Heroku, Roomies had to work around a ten-minute scheduler limitation. On Cloud, the Laravel scheduler runs every minute as designed.

Octane was also something the team had wanted for a while. Previously incompatible with their setup, it was available from the start on Cloud with a toggle of the “Use Octane as runtime” option.

On the monitoring front, Nightwatch delivered results within the first session. "Literally within half an hour of running Nightwatch on Roomies, we identified two painful N+1 problems," Dwight said. "Since then, it's helped unearth a number of actionable changes to improve our performance."

Those issues had gone unnoticed for far too long, undetected by the application performance monitoring tools they had been using. “The tools were fine for general information about site performance and occasionally helped identify bottlenecks. However, they weren’t geared towards Laravel, which could make it difficult to fully grasp an issue.”

Migrating Eight Sites with Minimal Downtime

Roomies took a phased approach to the migration. They deployed to Laravel Cloud in the background for months before switching over any traffic. This gave the team time to verify compatibility and get familiar with the platform without any risk to the live sites. When they were ready, they migrated each site individually.

Migrating over to Laravel Cloud allowed us to take full advantage of Laravel’s offering, remove a heap of custom configuration to make Laravel run properly on Heroku, and get the same performance at a fraction of the cost.

The trickiest part, as with any migration, was the database. “Heroku Postgres limitations also made it more difficult to move data out without a dump and restore, which can result in downtime. Thankfully, PlanetScale offers a migration utility that can copy your data out and then keep your databases in sync, which made it easy to swap out the database provider with minimal downtime,” he explained.

Moving the app itself was, in Dwight’s words, painless. "It really was as simple as adding the domain, updating the DNS, and letting the new traffic trickle over to the new infrastructure," he said. The final cutover, their largest US site, followed the same pattern, allowing for an uneventful migration.

What Migrating to Laravel Cloud Changed

For an engineering team as small as Roomies’, Laravel Cloud’s impact wasn’t just felt in terms of performance gains and overall infrastructure improvements, but mostly in terms of reduced mental load.

"There's no more manually promoting builds. Our changes go out and are deployed to production within a minute," Dwight noted. “Migrating over to Laravel Cloud allowed us to take full advantage of Laravel’s offering, remove a heap of custom configuration to make Laravel run properly on Heroku, and get the same performance at a fraction of the cost.”

Dwight added that he expects further improvements ahead: “We're looking forward to exploring more of Cloud, including preview branches and further optimizing our performance." Part of this exploration includes moving to managed queues, which the team is already looking into.

“I’m still in the Cloud dashboard regularly while I explore and tinker around with settings and features. However, I have confidence that I can set and forget and leave it to Cloud to keep Roomies running.”

Try Laravel Cloud

Roomies moved eight sites serving eight markets, handling nearly 135 million requests per month, with a two-person engineering team. The migration came with immediate, measurable savings and unlocked platform capabilities they had been blocked from using for years.

If you are currently on Heroku and weighing the move, read the Heroku to Laravel Cloud migration guide to understand what the process looks like for your stack.

Then, try Laravel Cloud to see the difference for yourself.

Roomies

Roomies
CompanyRoomiesIndustryB2CLocationAustraliaMigrated fromHerokuKey featureAutomated builds, Nightwatch

Problem

Rising infrastructure costs on Heroku, along with recurring database performance issues. The team was also blocked from using key Laravel features like Octane, Nightwatch, and a per-minute scheduler.

Solution

By migrating to Laravel Cloud, Roomies cut compute costs by 80%, gained full access to the Laravel features they needed, and unlocked immediate performance wins, including catching two critical N+1 issues within 30 minutes of enabling Nightwatch.

Talk to a Cloud expert

Let the Laravel team design the right infrastructure configuration for you.

Contact sales

Ready to ship?

Let's build the incredible together, with Laravel. Start now with $5 in usage credit.