Skip to content
Case study 01·Netherlands·Road traffic exemption admin

A €300,000/yr business that runs on 4 human hours a week.

A one-man Dutch admin business ran for five years on seven Google Forms and a spreadsheet. He rebuilt it with Claude Code without being a developer, halved his operations time, and took four weeks off while it ran without him.

Interviewed by Kieran Ball & James Devonport

4 September 2026 · 13 min read

ShareLinkedIn
Tools in this case studyClaude CodeClaudeSupabaseVercelMollieResendSentrySquarespace

The facts

Guest
MaartenFounder and only employeeFirst name only, company name withheld at his request.
Company
One-man company
Location
Netherlands
Founded
2020
Sector
Road traffic exemption admin
Monthly run cost
About €354, plus a Claude Max plan
A client's self-service dashboard in the app Maarten built, showing fleet counts, actions needed and compliance gaps. Demo data.
A client's self-service dashboard in the app Maarten built, showing fleet counts, actions needed and compliance gaps. Demo data.

At a glance

  • Maarten runs a one-man business in the Netherlands handling road traffic exemption admin for infrastructure repair firms.
  • He ran it for five years on seven Google Forms and one spreadsheet. Typos in licence plates and addresses got through, and he checked every row by hand.
  • He rebuilt it as a custom platform with Claude Code, without being a developer. He had working code within a week, then spent six weeks migrating the data, and it's been live since January 2026.
  • The operations work has halved. Running the business now takes him about 4 hours a week, down from about 8.
  • Customers now serve themselves. Companies manage their own drivers and vehicles in a dashboard, and bad data is refused at entry.
  • The platform costs about €354 a month to run, plus a Claude Max plan.
  • He took four weeks off on a boat this summer and the business ran without him. He got by on about 3 calls and an hour of email a week, and didn't open Claude Code once.

The business

Preventing parking tickets for repair crews

In the Netherlands, gas, water and telecoms cables all run under the ground. When one breaks, a repair crew has to park a van or a mini excavator somewhere that's normally forbidden, on footpaths, on kerbs, or past road signs that say no.

The Dutch government grants companies an exemption for this. Every vehicle and every mechanic using the exemption has to be registered and traceable. What the customer wants is simple, a physical card on the dashboard they can show a police officer.

Maarten got the idea while working for a contractor. His employer paid an outside firm to handle this admin, and the firm kept getting it wrong. He asked if he could take it over instead, and his employer said yes, if he could do it better for the same price.

He built it as a side business. He had a full-time job, a mortgage and two kids, so the company lived in his evenings and weekends.

The work never stops because the data never stops changing. Mechanics join and leave, vehicles get replaced, leases end, and every change has to be processed, checked and reprinted.

Workflow 01 / 03

From seven Google Forms and a laminator to an app that refuses bad data

Before

He was the validation layer

He started manual on purpose. His view was that if you automate a process you don't understand yet, you automate the wrong thing.

So for five years the whole business ran on seven Google Forms, one Google Sheet, Stripe and Gmail.

  • Data in. Customers typed into one of seven forms, one per process, covering company onboarding, driver and vehicle onboarding, plate changes, offboarding, renewals, objections and an eligibility check. A form accepts whatever you type into it.
  • Checking. He read the sheet line by line and corrected errors by hand.
  • Invoicing. At the end of each month he counted each company's vehicles and adjusted the quantity in Stripe himself.
  • Customer changes. He processed every driver and vehicle change as it came in.
  • Printing. He emailed a CSV to a printing company.
  • Final check. When the cards came back from the printer, he checked and laminated every one at his kitchen table.
The old system. Seven Google Forms and one master sheet, running a six-figure business.
The old system. Seven Google Forms and one master sheet, running a six-figure business.

Mistakes turned into physical objects in the post. A typo in a licence plate meant a card that didn't match the vehicle, which is the one thing the card exists to do. A wrong address meant a card posted somewhere that didn't exist. He once overcharged a customer because his vehicle count was wrong, which he said felt stupid.

He added what validation Google Forms allows, like forcing phone numbers to be 10 digits. It helped a little. It could not tell him whether a plate belonged to a real vehicle or an address to a real building.

Checking also got less reliable as the volume grew.

"I spent a lot of time checking all my data line by line, correcting it by hand. But after a certain volume it becomes harder, and you're getting so used to checking everything's right that you're going too quickly yourself."

Being the validation layer also meant being available. He answered every request the day it came in, seven days a week. On one family holiday he told his family he'd stay at the house for the morning, then worked the afternoon instead.

What changed

A tool arrived that made the rebuild possible

He knew the setup was wrong and had a backlog of things to fix. He tried to rebuild in a no-code tool, did two courses, and struggled for months. Learning a new platform at ten at night after a full day of work didn't work for him.

Then Claude Code came out at the start of 2026. He installed it on a Thursday, and by the end of that day it had built the things he'd been stuck on for months. Within a week, everything on his backlog board was working code.

What he built

The same six steps, with the checking moved to the front

  • Data in. A custom app replaces the forms. Licence plates are checked against the RDW, the Dutch roads authority, so when you type a plate the app shows the make and model for the customer to confirm. A typo returns the wrong car or no car at all, and the customer corrects it themselves. Addresses are checked against a Dutch address database, and formats are enforced on entry.
  • Checking. This is gone as a separate job, because the system refuses data it can't verify.
  • Invoicing. Invoices are generated in the app from the live vehicle count, and payments come in through Mollie and are matched automatically.
  • Customer changes. Each company now gets a dashboard to manage its own drivers and vehicles, and drivers get their own dashboard too if their company allows it, with permissions set per role. His largest client arrived with 800 vehicles and 800 drivers, so he built a CSV import for them. Local authorities have their own view of which plates hold an exemption.
  • Printing. He chose a new print supplier, ADDI, because it has an API. Data goes out, and status comes back as printed, in progress or dispatched.
  • Final check. This one is gone too, because the new supplier laminates the cards as well.
A client's dashboard, with demo data. They add vehicles, approve driver requests and see their whole fleet without emailing him.
A client's dashboard, with demo data. They add vehicles, approve driver requests and see their whole fleet without emailing him.

Claude Code makes it much faster to add new features. A client asked him to stop drivers editing their own vehicle details, because the company runs a leased fleet. The feature didn't exist, and he said he could turn it on for them anyway. He put the phone down, prompted Claude Code, and called back fifteen minutes later to say it was done.

The steps, before and after

  1. Data in

    Before, 2020 to 2025Person

    Customer types into a Google Form

    After, 2026Agent, person approves

    App looks the plate up, customer confirms

  2. Checking

    Before, 2020 to 2025Person

    Him, reading the sheet line by line

    After, 2026Gone

    Bad data refused at input

  3. Invoicing

    Before, 2020 to 2025Person

    Him, counting vehicles into Stripe at month end

    After, 2026Agent

    Generated from the live count, Mollie matches payments

  4. Customer changes

    Before, 2020 to 2025Person

    Him, processing every change

    After, 2026Agent, person approves

    Customers self-serve, limited by role

  5. Printing

    Before, 2020 to 2025Person

    Him, emailing a CSV to the printer

    After, 2026Agent

    API out, dispatch status back

  6. Final check

    Before, 2020 to 2025Person

    Him, laminating at the kitchen table

    After, 2026Gone

    Supplier laminates, validation caught errors earlier

Person does itAgent does itStep no longer exists

Six steps, and he personally did four of them. After the rebuild he does none. The two steps that disappeared are the two where he was the safety net.

Stack

What each tool replaced

  • CClaude Code

    Job:Building and maintaining the app

    Replaced:Years of not getting round to it

  • Job:Database and logins

    Replaced:The Google Sheet

  • Job:Hosting

    Replaced:Google Forms

  • MMollie

    Job:Payments and reconciliation

    Replaced:Stripe, and his month-end checks

  • RResend

    Job:Transactional email

    Replaced:Gmail, partly

  • SSentry

    Job:Error monitoring

    Replaced:Him noticing

  • RRDW open API

    Job:Licence plate lookup

    Replaced:Manual retyping and reformatting

  • DDutch address database

    Job:Address validation

    Replaced:Nothing, addresses went unchecked

  • AADDI

    Job:Printing, laminating, dispatch status

    Replaced:A CSV emailed to a printer, and his laminator

  • MMailShield

    Job:Email deliverability

    Replaced:Nothing

  • Job:Marketing site

    Replaced:Nothing

The total comes to about €354 a month, plus the Claude Max plan.

Effort

A week to build, six weeks to migrate

Build time. He started on a Thursday, and everything on his backlog was working code within a week. Migrating five years of spreadsheet data and testing took another six weeks before a single customer touched it.

Difficulty, hard. This is a full custom application with logins, payments, per-role permissions, two government API connections and a supplier integration, and it holds other people's personal data. It is not a weekend project.

What he already had matters more than the difficulty rating. He'd spent five years running the process by hand, so he understood every step of it, and he had an existing paying customer base, so the rebuild had a known spec instead of a guess. His country has free public APIs for plates and addresses, which not every country does, and he switched print suppliers to get one willing to offer an API.

Result

Half the hours, and a month away to prove it

  • Operations take about 4 hours a week, down from about 8. These are his own estimates from the call, nobody was timing anything in either period.
  • Customer questions take almost none of that time, he says.
  • He took four weeks off this summer. He did about 3 calls a week and roughly an hour of email, he didn't open Claude Code once, and anything that occurred to him went on a list for when he got back.
  • Live since the start of 2026 and still running, on a customer base that includes an 800-vehicle fleet.
  • Run cost about €354 a month, plus a Claude Max plan. The figure comes from his own billing. He thought it sounded high and offered to check it, so treat it as an upper estimate.

The rest of his working time now goes on improving the platform and growing the business.

The revenue picture. His revenue has grown significantly since the switch, to around €300,000 a year. The business was growing anyway, so the platform doesn't get all the credit. It does get some though, because a professional self-service product helped him win bigger, more established clients, and the operations time it freed up now goes on sales and marketing instead of admin. Sales is now the only part of the business that still needs him, and when he paused outbound over his summer holiday, growth paused with him.

The checks

Not needed once bad data can't get in

For five years he checked everything by hand because mistakes came through constantly, and laminating every card at his kitchen table was his final look before anything reached a customer.

The rebuild removed the reason for the checks rather than just the checks. A wrong plate or address can't get into the system anymore, because everything is validated at entry against official databases and the customer confirms their own details on screen. The check moved to the front of the process, where a computer does it better than he ever could by eye.

He didn't take that on faith either. He kept having the printed cards sent to him at first, and only stopped once the new system had run long enough that he stopped finding mistakes. It has held up since going live in January.

Security

The part you have to take seriously

If you're non-technical and building something that holds customer data, security is the part to take seriously. The risk is real, because AI-written code is code you can't judge yourself, and Maarten is blunt about it.

"It's an easy tool, it easily fools you."

His answer is a regular review process. Every week he has Claude go back over the codebase and check that it's still solid, still secure and that it scales, and he runs the review again whenever a new model comes out. He usually finds something to improve, and fixes it. He also runs Sentry, so errors reach him rather than waiting for a customer to notice. His reasoning is simple, a data leak would end the business.

He's not guessing at how to do this either. He spent a decade of his employed career working to ISO 27001 security policies, so he knows what good practice looks like, and he's confident the app is secure because of these regular checks. His view is that anyone building with AI and holding sensitive data should make this a routine, not a one-off.

Your first step on security. Point whatever AI you build with at your own codebase and ask it to review for security problems. It takes an afternoon, and it's better done before you have customers rather than after. If you hold anyone's personal data and you've never done this, do it this week.

His advice

What he'd tell someone still on Google Sheets

Three things, in his order.

Get the process right before you automate it. He ran on Google Forms for five years on purpose. If you automate a process you don't understand, you make the wrong thing faster.

Don't build the spaceship. His phrase. If you keep adding features, it never flies. Start with the one process that's costing you most.

Solve the customer's problem, not yours. His customers wanted a correct card on the dashboard. They didn't care that he laminated it in his kitchen. Making life easier for himself came later.

And one more from the call. If he started the same business today, he'd go straight to Claude Code on day one.

Case studies are published to help readers understand how other organisations approached a problem. They are not endorsements of a tool or a vendor, and one company's result is not a forecast of yours.

Create With Plus · 2 more workflows from this case

6 min more

There's more to this one.

Two more workflows from this case sit behind the wall, in full. How he rebuilt customer support so every email and phone call arrives with the reply already drafted, and how a six-week data migration became an audit that found customers he'd never billed. Everything above stays free.

  1. Workflow 2 of 3

    Customer support, from writing every reply to reading every draft

    Enquiries. He wrote every reply from scratch, in Gmail. Calls. His mechanic customers like to ring rather than email, and whatever was said on a call existed only in his head afterwards. Follow-ups. Anything he promised on a call was his to remember and write down. History. Context from a conversation months ago was gone unless he'd happened to note it, and he describes himself as a goldfish.

  2. Workflow 3 of 3

    The data migration that turned into an audit

    Everything lived in one Google Sheet, maintained by hand since 2020, with no rules on any field. He knew there were errors in it, but not which ones or how many.

His support inbox. Email, phone and chat in one queue, with drafted replies waiting.
His support inbox. Email, phone and chat in one queue, with drafted replies waiting.
A support thread, demo data. The AI assistant answered the customer's first email within the minute, and Maarten stepped in himself half an hour later.
A support thread, demo data. The AI assistant answered the customer's first email within the minute, and Maarten stepped in himself half an hour later.
The call log. Every call recorded, transcribed, summarised and attached to the right customer.
The call log. Every call recorded, transcribed, summarised and attached to the right customer.
Read the full case with Plus Member? Log in

Everything above this point is free on every case study we publish.