Purser

Let Maya from Harbor Foods close the spring restock

Sample names

We Make Your Time More Valuable

Your customers live in six tabs and none of them talk. Put them on one desk, and every move you make prints a receipt.

New → Quoted → Agreed → Won Example data

  • Harbor Foods · spring restockMaya L.$4,800Won391d…7968
  • Ridgeline Tax · year-end packSam O.$2,400Won9a36…275b
  • Blue Kite Pets · grooming vanPriya N.$9,400Wondc49…998b
  • Deal moved to WonHarbor Foods
  • Three spellings, one personMaya L.
  • Spring mailer sent412 people
  • Step waited for a humanSam O.
  • Draft held for reviewnot sent
  • Rewrite refused42501

SEALEDdc49…998b

Your turn

Move One Yourself

Drag a deal to any column and it seals.

The board Example data

New 3

Harbor Foods · spring restock$4,800 · Maya L.
Ridgeline Tax · 3 new clinics$12,000 · Sam O.
Blue Kite Pets · loyalty tier$1,950 · Priya N.
$18,750

Quoted 3

Harbor Foods · catering line$7,200 · Maya L.
Ridgeline Tax · payroll add-on$3,600 · Sam O.
Blue Kite Pets · grooming van$9,400 · Priya N.
$20,200

Agreed 3

Harbor Foods · holiday boxes$15,500 · Maya L.
Ridgeline Tax · year-end pack$2,400 · Sam O.
Blue Kite Pets · vet referrals$5,100 · Priya N.
$23,000

Won 3

Harbor Foods · weekly standing$22,000 · Maya L.
Ridgeline Tax · bookkeeping$8,800 · Sam O.
Blue Kite Pets · boarding$6,300 · Priya N.
$37,100

Every move prints a receipt

Sealed the Moment It Moves

  1. Sealed

    A deal changes column and the chain takes its hash.

  2. Signed

    Every approval carries the name of the person who gave it.

  3. Kept

    Nobody edits history, us included. The database refuses.

On a Record You Own

Each card is a row in the chain, carrying the hash of the one before.

09:14Draft held for review
42501No role may edit history
MonSpring mailer sent to 412 people
$4,800Harbor Foods moved to Won
TodayThree spellings, one person
3 of 3Onboarding finished
Reply agent · Blue Kite PetsExample run
  1. 09:14:02read Priya N. · 4 visits · last order boarding
  2. 09:14:02read open deal: grooming van, quoted $9,400
  3. 09:14:03read her last note: "call after the 12th"
  4. 09:14:05drafted reply · 84 words · tone: warm
  5. 09:14:05held for review · nothing sent
Draft to Priya N.Hi Priya, it's the 13th so I'm keeping my word. The grooming van quote still stands at $9,400 and I've held your Saturday boarding slot. Want me to pencil the van in for the first week of May?

This run is a recording, replayed. No model runs on this page.

Agents you own

Your Say, Every Step

The draft is written before you sit down.

  1. 01 · it reads

    An Agent Drafts

    It reads the record, writes the reply, and stops.

  2. 02 · you decide

    You Approve

    Nothing is sent until you say yes.

  3. 03 · it prints

    It Seals

    Either answer prints a receipt with your name.

Welcome sent

The first note went out the minute Sam O. signed, from your address, in your words.

done · sealed 8ad1…f90c

Proposal reviewed

The agent drafted the year-end pack. It's sitting here until you read it.

waiting on you

Kickoff booked

Runs the moment the step before it clears. Not a minute earlier.

not started

One example day

A Day on the Chain

Six records, one history, every link checks.

  1. People

    09:02

  2. Deals

    09:40

  3. Campaigns

    10:15

  4. Flows

    11:30

  5. Agents

    14:05

  6. The Chain

    16:20

People · 09:02

Maya L. Is One Person

Three spellings were three rows. Now they are one person, and the merge is sealed.

sealbdf4…6622 prevgenesis

Deals · 09:40

Spring Restock Moved to Won

$4,800 for Harbor Foods. The Won column's total is recomputed from its rows.

seal35de…00e5 prevbdf4…6622

Campaigns · 10:15

Spring Mailer Sent

412 people, from your address, one receipt per person.

sealb060…3753 prev35de…00e5

Flows · 11:30

A Step Waited for Sam

The year-end pack waited at the human step until Sam O. approved it.

seal9591…e3c4 prevb060…3753

Agents · 14:05

Draft Held for Review

The reply agent wrote 84 words to Priya N. and stopped. Nothing was sent.

seal6617…47f5 prev9591…e3c4

The Chain · 16:20

Rewrite Refused

Someone tried to edit the 09:40 event. The database answered 42501.

seald9ad…7388 prev6617…47f5

Rent versus own

Rent It or Own It

Same customers, two very different records.

A Rented Seat

  • Billed per seat, every month you stay.
  • Your customer record lives in their database.
  • The price can change at every renewal.
  • Leaving means their export, in their format.

Purser, Owned

  • No seat rent. One price, in writing first.
  • The record lives in PostgreSQL you run.
  • History is append-only. A rewrite returns 42501.
  • Your export checks without us.

The part nobody else can say

A Record That Holds

History here can't be quietly rewritten, even by us.

Every record on your desk is a link in a chain: each event carries the hash of the one before it. Change one and every link after it stops matching. You can run it yourself right now.

Deal moved to Won7f3a…c21e
Person merged91b0…44da
Mailer sent3c9e…a07b
The database is waiting. Push the button and it tries to change the sealed event.

Your export is the same chain, written to a file. Edit one number in the file and check it: the seal on that row breaks, and so does every seal after it.

eventamountseal
Deal moved to Won7f3a…c21e
Person merged—91b0…44da
Mailer sent—3c9e…a07b

No seat count

Purser has no per-seat meter. The sixth person who logs in costs what the fifth did.

Append-only history

Events are added, never edited: the database itself refuses the rewrite, and the refusal is a receipt too.

Walk-out export

Every record leaves in a bundle you can verify without us. If we vanish, the file still checks.

An admission, since it's a receipt too: for 27 days the desk couldn't be deployed. The cause was one line in a git config, and we found it by reading the log. That's the job: the record tells you what happened, even when it's embarrassing.

Two shops or ten

Every Brand, One Record

Switch brands and nothing gets typed twice.

Harbor Foods

Harbor FoodsExample data
1,204people
$49,500open deals
61%came back
Maya L. · spring restock quoted today
Weekly standing order renewed yesterday
Spring mailer sent to 412 people Mon
Catering line: proposal drafted, waiting on you Mon

Ridgeline Tax

Ridgeline TaxExample data
388people
$26,800open deals
84%came back
Sam O. · 3 new clinics, quote sent today
Year-end pack: step waiting on you today
Payroll add-on agreed with Lena F. Tue
Bookkeeping welcome sent to 12 people Tue

Blue Kite Pets

Blue Kite PetsExample data
2,041people
$22,750open deals
73%came back
Priya N. · grooming van draft held today
Boarding season mailer to 390 people yesterday
Ivy S. came back: 22nd visit yesterday
Vet referral thanks sent to 31 people Mon
  1. 01Harbor Foods

    1,204 people in its own room on the desk.

  2. 02Ridgeline Tax

    388 people. Same desk, separate room.

  3. 03Blue Kite Pets

    2,041 people. Same desk again.

  4. allOne Record

    A customer of two brands is one person with two histories.

What's in the box

The Manifest

Five record types, one chain, zero rented seats.

01

People

One person per human, however many ways they've spelled their email. Sources remembered, merges sealed.

02

Deals

The board you just used. Drag, seal, total: every column sum is recomputed from its rows.

03

Campaigns

Mailers and proposals that go out from your address and leave a receipt per person.

04

Flows

Rows of steps with a person in them. The step waits; the record shows who cleared it and when.

05

Agents

Readers and drafters that stop at the door. You approve, you reject, and both are sealed.

06

The Chain

Append-only history under everything above. The refusal you saw is the database's own.

07

Your Database

Postgres you run, or we run for you, on your account. Either way the keys are yours.

Who works on it

One Record, Every Business

The Front Desk

Sees one person where there were three spellings.

Sales

Moves the deal, and the seal follows.

Marketing

Sends the mailer from your address.

Operations

Clears the human step. Nothing after it runs early.

The Agent

Drafts the reply. It can't send it.

The Owner

Checks the export without us.

Rent versus own

What Renting Costs

Rent compounds by the seat and never stops.

Per-seat software charges you for growing. Put your team in and watch the two panes drift apart: one is a bill that renews forever, the other is a figure we put in writing on the walkthrough, paid once.

Renting by the seat

$6,912at a sample rate of $24 per seat per month Example rate

The rate is a stand-in. Put your real one in your head: the shape of the curve doesn't change.

One price, no seats

$0 / seatthe one-time figure goes in writing on the walkthrough

Add a seat, add a year: the number on the left keeps climbing. This one doesn't count seats.

We're not pretending the one-time figure is small. We're saying you'll know it before you sign, and it's the last one.

Before the walkthrough

Questions, Answered

Where does my data live?

In a PostgreSQL database you run, or one we run for you on your account. Either way the keys are yours.

Can anyone edit the history?

No. Every event carries the hash of the one before it, and an UPDATE on the audit table returns Postgres error 42501. That holds for your admins and for us.

Do agents send anything on their own?

No. An agent drafts from the record and stops. Nothing is sent until a person approves it, and the approval or the rejection is sealed.

I run more than one business. Do I need an account for each?

No. Each brand gets its own desk, as many as you run, and a customer of two brands is one person with two histories.

What happens if I leave?

You take the record with you. The export is a bundle you can verify without Periplus: edit one row and every seal after it breaks.

What does it cost?

There is no per-seat rent. The one-time figure is put in writing on the walkthrough, before you sign anything.

Field notes

Five Notes From the Desk

Eight minutes on how the desk thinks.

  1. 01
    Every Move Prints a Receipt

    The one rule everything else on the desk follows from, and the habit it asks of you.

    2 min · 9 September 2026
  2. 02
    Own the Record, Rent Nothing

    An opinion you're welcome to disagree with, and the math we'd rather you did yourself.

    2 min · 9 September 2026
  3. 03
    The Agent Stops at the Door

    Why the pause before sending is the feature, and what a run looks like line by line.

    2 min · 9 September 2026
  4. 04
    Ten Brands, One Desk

    Each brand keeps its own room, and a customer of both is one person with two histories.

    1 min · 9 September 2026
  5. 05
    Check Your Export Without Us

    Break a seal on purpose, watch the chain fail, put it back. No Periplus required.

    2 min · 9 September 2026

The close

Let's Win Together.

We turn feedback around in a day, not a quarter, and we'd rather show you the desk than describe it. Bring a real customer list: you'll leave with it on a board you own. Do you want to join us, and can you keep up?

Book a Walkthrough
A bright block rocket lifting off a charcoal desk, blocks tumbling from its base in hard light
Deal moved to WonHarbor Foods · sealed 7f3a…c21e
Three spellings, one personmaya@harbor.co · m.lee · Maya L.
Spring mailer sent412 people · 0 bounces
Step waited for a humanRidgeline Tax · approved by Sam
Draft held for reviewPriya's reply · not sent
Rewrite refusedno role may edit history · 42501
Quote sentBlue Kite Pets · sealed 91b0…44da
Regular came back4th visit this quarter
Flow finishedonboarding · 3 of 3 steps
Export verifiedbundle v1 · every hash matched