the same Purser · after hours

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.

day book · todayopen
  1. 08:14Sam K. · the usual, no oatremembered
  2. 09:02wholesale enquiry · from the cafe listone home
  3. 11:47three spellings merged · one recordremembered
  4. 14:20seat 11 joins the teamstill $0
  5. 17:55export written · re-checkable by anyoneone home
Nobody typed this list. It is the day, as the database kept it.

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 visit

Every 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-typing

The 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 forever

How it works

Four quiet helpers behind the counter.

01 / GATHER

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 back
02 / RECOGNIZE

Three 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 remembered
03 / NOTICE

It 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 check
04 / ACT

Reach 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 speed

The 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.

Purser desk: a customer list showing 53 people with names, emails, and last-seen dates
Ctrl/⌘ Kfind anyone — or do anything — by name Shift + →advance a deal without touching the mouse ?every shortcut, one key away

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.

a deal moves forward8b931dd1 66c9…
two records become one Samf7396072 5d02…
the day's import completes6c8b60ad f431…
every record verified in sequence — all clear

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.

OUR GATEevery release passes a full test suite in a sealed room before it ships18 GATES
S7 · run 1failed — we found a real keyboard bug, and fixed itFAILED
S7 · run 2failed — a fast double-keystroke could stumble; fixed that tooFAILED
S10 · latesteverything passed — accessibility checks included, on every screenPASSED

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.

NO
INCLUDED
WHAT IT MEANS FOR YOU
01
every brand you run
Each business gets its own private, protected space — one login, the whole family.
02
gentle ingestion
Purser reads from the tools you already use and never writes back to them.
03
customers, recognized
Duplicates merged into real people, with every detail's source remembered.
04
numbers with receipts
Revenue, repeat rate, rising wholesale buyers — every figure shows its work.
05
campaigns & proposals
Act on what Purser notices — reach the right people while it still matters.
06
the fast desk
Keyboard-first and accessibility-checked on every screen, for every teammate.
07
honest history
A tamper-evident record of every change — trust you can hand to an auditor.
08
a real exit door
Export everything, verifiably complete. If you ever leave, you leave whole.
09
ownership
Your PostgreSQL, your keys, no per-seat rent. This line is the whole point.

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.

01 · CORRECTNESS

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.

02 · CONCURRENCY

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.

03 · RELEASE DISCIPLINE

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.

367unit tests
636integration tests
42browser tests on the real desk
22routes accessibility-scanned
49architecture decision records

The honest math

Growing your team shouldn't grow your bill.

Rented CRM. Seats × people × months, forever. Your tenth hire clears five figures a year in software rent — for a tool you'll never own, holding relationships you built.
Purser. Built once, owned outright, serving every brand you operate. Your cost curve is your infrastructure, not your headcount — and your customer history is an asset on your side of the table.

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