Every number here
carries its receipt.
Same database, same records, same software you own outright — read at the end of a long day instead of the start of one. Nothing below is a summary. Each line is a stored entry, and each entry still knows where it came from.
- 08:14Sam K. · the usual, no oatremembered
- 09:02wholesale enquiry · from the cafe listone home
- 11:47three spellings merged · one recordremembered
- 14:20seat 11 joins the teamstill $0
- 17:55export written · re-checkable by anyoneone home
Why Purser
Built for the businesses people come back to.
Your regulars aren't rows in a database — they're the reason you're still here. Purser exists so a growing business can keep treating people personally, without renting its own memory back from a CRM vendor.
Regulars feel known
The same customer from your shop, your mailing list, and your order history becomes one person with one story — so "welcome back" is real. Repeat business grows when nobody falls through the cracks.
one person · one story · every visitEvery brand, one home
Run two shops or ten — each brand lives in its own private space inside one Purser, so your team stops re-typing customers between tools and starts seeing the whole picture.
multi-brand · zero re-typingThe rent stops
Purser is software you own, running on your own database. Hire your eleventh person and your CRM bill doesn't move. Leave someday? Your records walk out the door with you, provably intact.
$0 per seat · yours foreverHow it works
Four quiet helpers behind the counter.
It reads from the tools you already use.
Purser gently pulls from your shop platform, your mailing list, your order history — read-only, never touching your live systems. Nothing to migrate on day one; your existing tools keep working.
connects to what you have · never writes backThree spellings become one loyal customer.
"Sam K.", "sam.keller@…", and "Samuel" are the same person — Purser figures that out and keeps a note of where every detail came from, so you can always answer "how do we know this?"
duplicates merged · sources rememberedIt spots what you'd spot — if you had the time.
The café regular who's quietly become a wholesale buyer. The repeat rate that dipped this month. Purser watches your numbers and raises a friendly flag with the receipts attached, so you decide with confidence.
opportunities surfaced · numbers you can checkReach out while it still matters.
Turn what Purser noticed into a campaign, a proposal, or a personal note — from a desk so fast your team never breaks eye contact with the customer in front of them.
campaigns · proposals · a desk built for speedThe desk
Your whole business, one keystroke away.
This is Purser running for real — every regular, every order, every note, reachable before the coffee machine finishes. Built keyboard-first so serving people stays faster than software.

Why you can trust it
Your records, provably yours.
Ownership only means something if the history is trustworthy. Every change Purser makes is written to a tamper-evident chain — so "this is what happened" is something your business can prove, to an accountant, a partner, or a buyer.
Go ahead, press it. Change anything anywhere in the story and every later record stops adding up — which is exactly how your history stays honest without anyone having to take anyone's word for it.
checks your copy of Purser passes before a release ever reaches you — run cold, in a sealed room, with the network switched off.
Eighteen sessions, eighteen sealed-room gates, and we still publish the runs that failed. A company asking you to trust its record-keeping shouldn't tidy up its own.
Everything included
One price of admission: it's yours.
For your technical friend
The engineering holds up to a hard look.
Show this part to whoever checks these things for you — the guarantees live in the schema, the transaction, and the release gate, not in a promise.
Canonical to the byte
One canonical JSON form and a DecimalString money type are the root of the record chains and the export bundle. Money is integer hundredths, end to end — no floats, ever.
Real locks, real database
Guarantees rest on PostgreSQL row-level locking — embedded lookalikes are explicitly rejected. Migrations are forward-only and committed; schema drift is structurally impossible.
Gated in a sealed room
Every release ships through an egress-denied container: network out refused, the full suite run cold, accessibility scans on every route. Failures are preserved, not rewritten.
The honest math
Growing your team shouldn't grow your bill.
Purser
Your customers, remembered. Your records, yours.
A thirty-minute walkthrough with real data — no deck, no pressure. Bring your hardest question.
Book a walkthrough