Find a customer in seconds.
Give a punch, earn a reward, and find customers by phone number.
π Customer phone lookup
Demo: try Jamie at 202-555-0101 or Sarah at 202-555-0104.
π₯ Customers
Tap to select. Each customer keeps a separate punch balance.
β Selected customer
Always check the selected customer before recording a transaction.
π Your store
Changes made in cloud mode become visible to other signed-in cashiers at the same store after refresh or the 15-second sync.
Reward cards that stay organized.
Choose a customer from the Cashier Counter. Their card appears there with live balance.
For the biggest, live card view, open Cashier Counter and select a customer. Our next customer-facing release can include a QR code and optional customer self-serviceβthis pilot is cashier-operated only.
Make it your store.
Configure punches and the reward. Cloud changes require the owner role.
The employee only needs to find the customer's card, confirm a qualifying purchase, and add a punch. Owners control the reward rules.
Cloud mode uses one shared store record; local mode is still just a demo.
See how your loyalty program is doing.
Customers, rewards, and recent activity
π Reports & safe backups
Download a spreadsheet for reviewing loyalty balances, or import your previous fictional-demo backup.
π Customer overview
| Name | Sample phone | Punches | Earned | Used |
|---|
π Activity history
Cloud events are recorded on the server with the signed-in staff account.
Everything you need, right inside the app.
No need to switch back into chat during the test.
Search 202-555-0101 to find Jamie, then record a qualifying punch.
Search Sarah at 202-555-0104. Confirm her card is separate.
Use Store Setup to choose your reward and number of punches.
Review rewards, export a CSV, and download a local JSON backup.
Use Cloud Setup and the included SETUP guide. Only then can multiple devices share records.
Once signed in, the owner creates a one-time code. A separate employee signs in and redeems it.
Sign in on your Chromebook as store owner. Then sign in with a DIFFERENT email on your phone or another laptop as cashier, join using the one-time code, and add a stamp. Both devices should show the updated balance.
Cloud accounts & shared store records.
Supabase-backed login and database integration, ready to connect.
ππ PerkLedger Β· $19.99/month
One store loyalty program, customer punch cards, cashier access, and owner dashboard. Stripe checkout is available to signed-in store owners. This is still a pilot until live payment, security, and privacy readiness are verified.
To subscribe, sign in and connect a store you own.
1. Connect your project
Create a free Supabase project, run schema.sql, then enter your public project credentials. These aren't connected automatically.
Public URL and publishable/anon key are stored in this browser. Never paste database passwords, service-role keys, or secret tokens here.
2. Sign in securely by email
You'll get a sign-in email from your own Supabase project. The app must be hosted at an HTTPS web address and approved in Supabase redirect settings.
Signed in
3. Create or join a store
πͺ Connected store
Β·
Invite another cashier
Create a one-use code valid for 7 days. The cashier must sign in with their own email and enter the code. Share codes privately.
β Employees sign in with their own email accounts.
β A cashier can access only the store they've joined.
β Only the owner can change settings, invite staff or see owner reports.
β Stamp and redemption operations run as locked database transactions.
β Data syncs by refreshing automatically every 15 seconds.
Security still needs review and live database testing before customers use it.
Connection status
Not connected
The Supabase library couldn't load. Check internet access and try reloading your page.
The demo works now, even before connecting a backend.
Supabase setup instructions and a database schema are included in the ZIP package.