When Solutions Architect Fa Perreault and his team at PyleSoft (known as Pyle) built their B2B e-commerce platform on Laravel Vapor, they thought they'd found the perfect solution for their scaling needs.
Fast forward a few years, and they were running a complex hybrid infrastructure: Vapor handling web requests, Laravel Forge managing servers that acted as workers, and a tangled web of AWS services holding it all together.
The setup worked, but it was expensive and difficult to maintain. Their infrastructure bill hit $11,000 per month.
Today, Pyle runs entirely on Laravel Cloud, having fully migrated from Vapor. Some benefits:
- Their infrastructure costs dropped 50%.
- The platform handles 1.5 million requests per day across 13 sites serving the flooring industry.
- The team reclaimed 100-200 engineering hours annually to focus on building features rather than managing infrastructure.
Watch PyleSoft's Solutions Architect share their migration story.
The Breaking Point: When Vapor Wasn't Enough
Pyle was born from the best business problem you can have: rapid growth. TheFloorBox, their flagship e-commerce site, had outgrown Shopify's limitations. They rebuilt it with Laravel and Vue on Forge, then expanded when other flooring businesses saw the platform's potential.
As traffic grew, they turned to Vapor for its serverless benefits and tight Laravel integration.
But Pyle's workload didn't fit the serverless model cleanly. (If you're weighing similar trade-offs, compare Cloud and Vapor to see which fits your needs.) The platform processes hundreds of thousands of jobs daily, syncing live inventory and pricing across multiple suppliers. Many run longer than Lambda's 15-minute timeout. The team needed persistent workers with better visibility into queue processing.

"We first took the approach of bringing our dev experience closer to that of Vapor by making devs work on Docker containers provisioned by Laravel Sail," Fa explained. But things weren’t really working.
The fix was a hybrid setup: Vapor for web requests, Forge for workers, with shared Redis instances and careful environment synchronization. "Our whole infrastructure was kind of working by luck at some point," Fa said.
This hybrid approach created its own problems. Developers couldn't replicate the production environment locally, and bugs were hard to reproduce. Scaling workers required manual intervention, and costs kept climbing as the team overprovisioned to stay online.
Migrating from Vapor to Cloud on Taylor’s Recommendation
The turning point came at Laracon US 2025 in Denver. Pyle’s team had been weighing migration for months (Cloud against a pure Forge setup) while trying to stick to their internal guideline of building "The Laravel Way."
At an enterprise dinner, they spotted Taylor Otwell alone and made their move. "We talked to Taylor about all the issues we had, all the hacks we've made," Fa recalled.
Taylor's diagnosis was convincing: "Your process is so job-heavy; this alone is why you need Laravel Cloud with what we have planned for queues," he told them. That meant scalable apps and workers in one environment, with Laravel Nightwatch integration and managed WebSocket support.
"When we got back from that dinner, we met up with the dev team, sat down, and told them, 'We're moving to Cloud starting next week.'"
Pre-Migration: Six Apps, Four Blockers
Pyle needed to migrate six applications, each with staging and production environments. Every stack included web servers, worker nodes, Aurora Serverless, Meilisearch, Redis, S3 buckets holding terabytes of data, and dedicated IPs for whitelisting with external services.
Before they could start, they identified four blockers and turned each into an opportunity to simplify:
- Static IP whitelisting. Their customers' enterprise resource planning systems required single outbound IPs, and Cloud didn't offer Network Address Translation gateways yet. Fix: a proxy routing whitelisted calls through a single endpoint.
- Custom Linux extensions. Some apps used document conversion tools incompatible with Cloud's infrastructure. Fix: an external service costing pennies per conversion, freeing up compute.
- Legacy FTP connections. One customer's File Transfer Protocol server verified that multiple requests came from the same IP, which was impossible with Cloud's rotating outbound IPs. Fix: a sync tool that cloned files from the customer's server to their own secure file transfer protocol setup, which Cloud could access reliably.
- Database migration. Moving 300 GB of production data without extended downtime meant finding the right tooling and approach. Fix: Using mydumper and myloader.
The Migration Process: Dry Runs and Database Dumps

Pyle developed a methodical approach for each app migration. First, they cleaned up the codebase, removing environment-specific hacks and flags that checked whether code was running on Vapor or Forge. Then they migrated staging environments and ran features through testing for several weeks.
The critical step was the dry run. They provisioned production environments on Laravel Cloud without routing traffic, then restored database snapshots to test the full migration process. This revealed potential issues before the actual cutover.
For database migration, they needed high-level privileges to use tools like mydumper and myloader. "The Laravel Cloud team made sure to give us access to each app's databases we created, which greatly lowered downtime," Fa said.
On migration day, they knew what to do: enable maintenance mode, drain queues, snapshot the database, export with mydumper, restore with myloader, swap the domain name system. The largest downtime was one hour with no data loss.
Fa completed the final migration steps without even calling Laravel Support. "I took a look at it, and I wrote to the dev team, ‘Well, I think it's done. We're fully migrated now."
The Results: 50% Cost Reduction and 100-200 Hours Saved
By migrating to Laravel Cloud, Pyle saw infrastructure costs drop by half. “Our second migration option was Laravel Forge with Hetzner as a provider, and even then, the cost projections weren’t as low,” he said.
The team also estimates that the migration has freed up 100 to 200 engineering hours annually that would otherwise have gone to infrastructure management. At an average DevOps or Platform Engineer salary of $150,000 per year, that's $7,200 to $14,400 in annual savings they can put toward improving their project, letting developers focus on code.
Performance also improved across the board. “When we looked at the stats, individual hits had about 150 millisecond differences. But when you stack that across all the requests and back-and-forth in Vapor, those gains really add up," Fa explained.
The platform serves 1.5 million requests daily and processes 800,000 jobs across 13 production and staging sites. Scaling is automatic. Workers scale seamlessly alongside web traffic. The dev team can hibernate idle environments to save additional costs.

Perhaps most importantly, the infrastructure is no longer a hack. “Funny thing is, the reason why we migrated to Cloud (new queue clusters) is not even fully implemented yet and we are already very happy with the migration. We cannot wait for queue visibility to be added to Nightwatch so we can finally ditch Horizon and get the full experience of why we switched.”
Lessons for Teams Considering Migration
Looking back, Fa has clear advice for teams in similar situations: “I would recommend anyone with a critical workload or a similar scale to at least get in touch with Laravel’s migration team before getting started to just discuss the initial plan and see if they spot any red flags about what you are bringing to Cloud.”
He also admitted that he wishes they had migrated sooner. ”If I could do something differently, I would have left Vapor earlier, just because of cost. Our infrastructure costs on Laravel Cloud are more than 50% lower.”
The migration took 12 weeks across six apps, but much of that time was due to internal pacing. "The 12 weeks were pretty much on our end. We took it slowly and carefully with those migrations because of the criticality of the data that we were moving," Fa explained. "But in itself, the migration of actually moving to Cloud from Vapor was not that long at all.”
He added: “We're very, very happy with what we have currently on Cloud.”
Using Laravel Vapor? Migrate to Cloud
If you’re contemplating migrating to Cloud, read the Laravel Vapor vs. Cloud comparison.
Still on the fence? Watch Pyle’s webinar and check out their migration story.
If you're currently on Vapor and want to make the switch to Cloud for lower costs and higher performance, follow the Laravel Vapor to Cloud migration guide.
