Client
Anonymised — chimney sweep, Drenthe, NL
A custom desktop app for a solo chimney sweep in Drenthe — 3,500+ customer records, 14 years of service history, no internet connection, and a Microsoft Access database from the nineties. We replaced it with software shaped around how he actually works: offline-first, file-backupable, and quietly understood by the two people who use it.
A solo chimney sweep, ten-plus years in business, around two thousand active customers and another fifteen hundred archived but still queryable. The system that ran his business was a custom Microsoft Access database from the nineties — only he could access it, only on his desktop at home, only after the day's work was done.
Scheduling was a separate person's job. He'd export a list — these customers were due last March, they're due again now — hand it off to the scheduler, and she'd cold-call her way through it. Gaps in the schedule, customers who never got called, no map of where anyone lived. It worked, until you looked at it.
The trigger wasn't him. It was the scheduler quitting and his girlfriend's mother offering to take over — but only if the system stopped being the system. Fourteen years of customer history had to come along. That's where I came in.
Two desks, two workflows. His — in the car, between houses, scribbling customer changes onto a notepad to type up at night. Hers — at the kitchen table, calling through a printed list, no idea whose chimney was nearest to whose. The system that replaced the old one had to fit both, not just one.
He wanted offline. No cloud, no sync, no internet — a SQLite file he could copy to a USB stick. I wanted online: easier sync, easier collaboration, easier life for me. <em>He won, and he was right.</em> He works in spotty rural coverage, doesn't run his own infrastructure, and trusts a file he can hold over a service he can't see. The cost of his decision: a custom database merger so two people could share one dataset without a server. The benefit: software he understood, owned, and could back up himself.
Customer table you can query, filter, and edit on the spot — including 14 years of inherited service history migrated cleanly from the old Access database. A map view of every customer so the scheduler can group jobs by neighbourhood instead of date. Per-customer history of every chimney swept, every service done, every conversation had. Time-slot scheduling that produces a weekly run-sheet she emails him on Sunday nights. In-app documentation for both users so questions don't have to come back to me. Two app variants behind a build flag — his and hers — and a merge UI that surfaces conflicts as choices, not as errors.
Builds shipped by email when there's something new. Runs on Windows in his car and macOS at her kitchen table. No internet required, no account to log into. Once a month he sends her his database file; she imports it, resolves the differences, and they're back in sync.
"I don't type up notes in the evening anymore. Update everything in the car now."— The owner (paraphrased)
One queryable, mappable, editable dataset replacing a 30-year-old Access database that only one person could open. Every service from 2010 onward, intact and instantly searchable.
Offline-first by design. SQLite under the hood, file-backupable to USB, two-user sync via a custom merge UI that resolves conflicts as choices.
No more end-of-day note-typing. Customer changes happen in the field, on the laptop in the car, the moment they come up.