Our own loyalty cards for independent cafés. A QR code on the counter, a card on the customer’s phone, and a customer list the venue owns.
- Built for
- Independent cafés, then local shops
- Customers
- No app to install
- Stage
- In development
A café sees the same faces every week but has no list of them, no record of who comes back and no way to reach the ones who stopped.
Paper stamp cards get lost, and they tell the venue nothing.
Join at the counter
Customers scan the QR code and add a first name and an email or mobile. Saying yes to messages is a separate choice.
Stamps by scan
Staff scan the card from a phone. A stamp lands, and a free reward is issued by itself when the card fills.
Mistakes undone
The scanner takes a typed six-character code when the camera won’t, and any stamp can be undone for ten minutes.
No passwords
Customers keep a card page with no app or password. Staff and owners sign in with an emailed code.
- Every stamp checked on the server
- The phone proposes and the database decides in one transaction: the staff role, the gap since the last visit and whether a reward is due. Two taps at once still give one reward.
- A ledger, not a counter
- Balances come from an append-only history. Undo adds a reversing entry, and a retry on bad signal can’t stamp twice.
- Consent kept as a record
- Each yes to messages is stored with the channel, the time and the exact words the customer saw.
- Web
- Next.js on Cloudflare Workers
- Data
- Supabase and Postgres
- Resend
Stamp cards, the join flow and the scanner are built. Next come cards in Apple and Google Wallet, welcome, birthday and win-back messages, and the member list.