A composite · one desk · one Tuesday
There is no membership team. There is Dana.
Dana is not a real person. She is every director we have watched doing membership, events, invoicing, the newsletter and the website from one desk — folded into one. What follows is her Tuesday, and then the same Tuesday with the operating system underneath it.
6:40 a.m. · the day starts here
7:10a.m.
She answers the first one in the parking lot.
The phone is out before the engine is off, because a garage on the north side wants to know what joining costs and the answer is not on the website. It is in a PDF from two price rises ago, and in her head.
She types the number from memory. She will remember to write it down. She will not remember to write it down.
7:52a.m.
The spreadsheet is the database.
Members_2026_FINAL_v3.xlsx. Column K is dues status and column K has not been right since March. A renewal came in on Friday as a paper check. It is in a drawer.
Recording it means the spreadsheet, then the accounting file, then a note to herself to send a receipt. Three places, one fact.
Renewals — not posted behind
Three places, one fact, and the note is the one that gets lost.
9:15a.m.
“Can you send me the member list?”
Three lists exist. The spreadsheet, the mailing tool, and the public directory on the website — which a volunteer maintained until the volunteer stopped volunteering. Two businesses are still listed at addresses they moved out of.
She sends the spreadsheet, with a sentence apologizing for it. She has written that sentence enough times to type it without thinking.
10:40a.m.
Sixty-one names and one printer.
Lunch is tomorrow. Sixty-one people have said yes — some in a reply-all thread, some under a Facebook post, some through a form somebody built in 2021. Eleven of them owe her money for a seat.
The badges have to be printed tonight, which means the printer, which means the printer.
Tomorrow — 61 seats
11:58 a.m. · everything still open
This is the whole morning, and she has not had lunch.
- 01Barrera’s — wants to join, no reply yetsince 6:11
- 0234 renewals not posted anywheresince March
- 03Friday’s check — receipt owed4 days
- 04“Send me the member list” — which list?9:15
- 052 directory listings at old addresseslast year
- 0661 RSVPs across three places10:40
- 0711 seats booked, not paid10:40
- 08Badges for tomorrow, unprintedtonight
- 09Newsletter — Thursday, nothing writtenThursday
- 10Board packet — “how many members?”Friday
None of this is hard. Every item is fifteen minutes. The problem is that there are ten of them, there is one of her, and the only place they are written down together is the inside of her head.
1:20 p.m. · the same Tuesday · the ground just changed
Same desk. Same one person. Different floor under it.
Nothing below removes work from the day. Membership still has to be renewed and the lunch still has to be catered. What changes is where the work is kept — out of her head, out of column K, and into one system that every part of the job already shares. The tally in the margin is the same tally; watch it go out.
Back to 7:52 a.m. — the drawer, the spreadsheet, the note to herself
The renewal was already an invoice.
Dues are invoiced from the same record the member lives in, numbered numbered the organization’s own way rather than ours. A payment is recorded against the invoice it settles, so “have they paid” stops being a question you answer by opening a file.
- Invoices with lines, categories and your own numbering
- Pay links a member can use without signing in
- Card payments through Zoho Pay; reconciliation out to Zoho Books
- Chases and resends recorded against the invoice, not remembered
Stripe is written into the codebase and has never been connected to a live account. We are not going to sell you a payment processor we have never taken a payment through.
Back to 9:15 a.m. — three lists and an apology
There is no list. There is one record.
A person, and the business they run, are kept once — in the middle of the product, not inside whichever part of it met them first. The name at an event, the applicant on a job, the paying member and the listing on your website are the same record. The listing comes off it, so a business that corrects its own address has corrected the member file, because they are the same thing.
Your records live in a store of their own. Not a row with your name on it in a table shared with everybody else — your own, which is why nobody else’s people can turn up in yours.
- One record for a person, shared by every part of the product
- A public directory rendered from the member record, not maintained twice
- “This is my business” claim requests, reviewed by staff
- Categories, tags and levels you define yourself
- Duplicate detection, with merges recorded
Nothing here happens on its own. Duplicate pairs are suggested and dismissed by a person, and a merge is something you do rather than something that happens to your records.
Back to 10:40 a.m. — sixty-one names in three places
Sixty-one seats, one place, eleven invoices.
Booking is open to anyone, closed behind a password, or off. People take a single seat or a whole table, with the names filled in later. A paid seat becomes an invoice against the same member record, which is how the eleven unpaid ones stop being a memory test — and the badges print from the booking list rather than from a thread.
- Draft, publish and cancel an event; venues held as records
- Group bookings with named and unnamed seats
- Seat fees settled through the same invoicing as dues
- Bookings attached to the person, not to a form
No seating charts. Ticket tiers, early-bird pricing and promo codes live in a workspace rather than on the event itself.
Back to Thursday — the newsletter nobody has written
The newsletter is not a second address book.
An issue is built in the platform and sent to everyone or to members, resolved at the moment of sending from the same records. There is no subscriber list to keep in step, because there is no second list.
A big send runs down its own lane against your own allowance, and one above a certain size waits for a named person to say go before it moves. That control is there because email that runs away is not a hypothetical to us.
- Issues and posts sharing one document format
- Audience resolved at send time — everyone, or members
- A metered bulk lane, separate from transactional mail
- A threshold above which a named person has to say yes
Templates are designed by us, in code. There is no drag-and-drop email designer and there is no imported subscriber list.
Back to Friday — “how many members do we have?”
The answer stops depending on which file you open.
Reporting reads across everything you run, from one place. Membership, money and who turned up are the same records the day runs on, so a board number is something you look at rather than something you build. What you filtered lives in the address of the page, so the report you built is a link you can send to a treasurer.
The website is part of the same product. Pages have a draft and a published version with a history behind them, and the list of members on the public site is not a page anybody maintains.
- Reporting across everything you run, from one place
- A report that is a link, so you can send what you are looking at
- Pages with draft, published and revision history
- Menus, and a directory that renders itself
No reporting across organizations, ever. Each one keeps its records separately and nothing can reach across them. That is the promise rather than a gap.
5:40 p.m. · she is leaving on time
The work did not get smaller.
It stopped being hers to remember. That is the whole product, and everything on this page is a way of saying it.