How Dries Vints Keeps Laravel’s Billing Invisible and Bullet-Proof
Why billing engineers are underrated
Each product launch has the shiny, visible stuff people remember: Launch videos, snazzy animations, social media buzz. But product launches also have the dry, invisible stuff users only notice when it breaks: Auth, uptime, billing.
When Laravel decided to launch Laravel Cloud (which helps customers skip configuration, hosting etc.), billing engineer Dries Vints was tasked with turning a subscription + usage pricing from idea into reality.
For the usage-based pricing component, Dries needed a way to turn billions of usage events into compliant, accurate invoices. This made him the architect of Laravel’s billing machinery, who previously spent 6 years maintaining Laravel’s open-source tools. I spoke with Dries about billing and the unique challenges of working on billing, pricing and monetization.
From open source to full-scale revenue
Dries became a billing engineer when he started working on Laravel Cloud. “It was around the time we settled on Lago,” he recalls of the kickoff, “and I’ve been working on billing ever since.”
Dries spent six years maintaining Laravel’s open source libraries before pivoting into billing. His work included Laravel Cashier, which helps builders integrate Stripe and other payment providers.
That background gave him a “taste for fintech projects” many engineers never get. Working on Laravel Cloud, the mission changed from writing helpers for other developers to owning money flows.
The first difference Dries describes was volume. Laravel Cloud’s customers spin up databases, caches and compute of wildly different sizes which creates mountains of metered data. “From all of those different providers we need to collect the usage on a recurring basis and transform it into billing events that we send to Lago… we process so many events each day,” he explained.
This is one of the most common surprises for engineers (and others) who start to work on billing. Not only is there a ton of data, but it all matters!
It’s not like analytics where you can be selective of which data you want (and delay capturing some data that’s harder to track and operationalize). In billing, every edge case and every bit of data matters.
Why getting paid is so hard
Dries told me that even after setting up all the right event capture and billing logic in Lago, it wasn’t easy to get paid. Failed cards were often the culprit of unpaid bills and thus usage Laravel served, but didn’t get paid for.
This is another thing I’ve learned speaking to many billing engineers: A big challenge in building billing is that you need more than just event capture, billing logic and PDF generation (and those things are complex enough).
When you own billing, you own “Make sure we charge the right amount and customers actually pay it” which includes adjacent workflows like dunning. Sure, most cards might go through, but if failed cards mean manual labor, your system isn’t scalable. So yes, the edge case of failed cards matters a lot.
Why sweat every edge case? Because, as Dries puts it, “With billing we might be breaking the law if we don’t fix the edge case… all of these edge cases matter, and you have to solve every one.”
Laravel’s cloud pricing philosophy
Pricing something like Laravel Cloud is always tricky because Laravel is open source (as is Lago). Monetize open source at too high a price point and people will simply self-host (and probably lose some trust in you). At the same time, premium open source subscriptions help customers obviate the most annoying parts of using open source (maintenance, hosting, configuration).
Laravel’s Cloud pricing combines a free sandbox, a monthly subscription tier and granular usage charges. Dries told me: “You won’t be charged a lot if you just have basic low-end scaling, and prices climb only as you add resources,” he says, calling metered pricing “a fair model” that keeps the platform competitive.
The same logic drives their margin discipline. “We should only take a small portion of [customers’] revenue rather than be the big fish they have to pay for,” Dries argues.
Lessons for founders
When I asked what early-stage teams should do differently, Dries was blunt: find tooling that eliminates problems before they surface.
“There’s a ton of solutions to billing out there… chase those quick wins by getting the tooling in-house that solves problems for you before you even need to think about them,” he advises. Examples he notes are Laravel’s own Spark for simple subscriptions and Lago for scale.
Choosing a billing provider is an important infrastructure decision, which means you’ll rely on their team a lot. “That relationship you set up at the beginning is probably one of the most important things you can do.”
This is one of the most important parts of building billing: You never want to have to swap billing systems. Choose one (or build one) you’re confident for the long haul. Just make sure you’re not naive to the challenges that will come up when building yourself.
When finance and engineering share a desk
A common way finance and engineering fight is because of billing. Finance (or revenue) wants to know why it’s taking 4 months to ship credit pricing while engineering is figuring out how to make sure the billing system can support the one Serbian customer’s invoices after an update to local regulation.
That’s because at many companies, finance is the key stakeholder to procure a billing system, while the challenges for engineers only show up when you’re implementing (and have already paid). Laravel offers tooling for engineers, which means they know their pain points and care about them.
Dries told me that at Laravel, the engineering and finance teams speak “daily” about new use cases and how to stretch Lago without breaking abstractions. The developer-first culture means engineers can veto monetization ideas before they ossify into tech debt.
This is rare, but should be more common to make both finance and engineering happier.
Dries closes every conversation the same way: “If people are looking for cloud software, give Laravel Cloud a try—you’ll be amazed at how easy it is to launch a Laravel app in no time.”
The next time you glance at a clean invoice, spare a thought for the engineers who made it look effortless. Like Dries Vints at Laravel.