Company

QRspin

Founder · 2025 – Present

QRSpin — café table with QR stand, NFC card, and customer phone

Overview

The high-conversion loyalty loop for local hospitality.

QRSpin is a zero-friction loyalty platform that turns physical foot traffic into a persistent digital relationship. No apps, no passwords, and no staff training required. Just scan, play, and retain.

Role

Solo Founder

Development

1 Year

The Customer Journey

Registration template option 1

Businesses can choose a registration template.

Registration template option 2

Businesses can choose a registration template.

Spin to Win

Scratch Card

Grand Prize

Review Prompt

Member Hub

Prize Claim

Staff NFC Tap

Social Media

Custom Stamp Card

GPS Alert

Application Management

Owners management overview

Analytics Dashboard

Customer Email List

Stamp Card Designer

Track Giveaways

Game Setup

Customization

01

The Problem

Independent restaurants live or die by repeat visits, yet their loyalty tools are broken. POS systems are rigid, paper cards are lost, and native apps see less than 10% adoption. The result is a massive signal gap: owners give away value (discounts) without capturing any data (emails). Every missed registration is a customer who remains a stranger.

The cost isn't just lost revenue. Every missed email capture is a customer you can never reach again. Every skipped review request is a signal gap that makes you harder to find. Owners absorb this constantly, and most have simply stopped trying to fix it.

"We've given away hundreds of free coffees, but I couldn't tell you a single customer's name."

Cafe Owner — Vancouver, BC · Discovery Interview
02

Insight

The answer wasn't a better loyalty program. It was removing friction from every moment — and adding a reason to smile at the moments that remained.

The moment it clicked

At my mom's birthday dinner, she'd signed up for a restaurant's email promotion — 20% off. When the bill came, she couldn't find the email. The server waited. She apologised. Five minutes of low-grade embarrassment for everyone, and she left without the discount anyway. The promotion worked well enough to get her to sign up — but completely failed at the moment it actually mattered.

Assumed

Customers need bigger rewards or complex point systems to feel loyal.

Reality

Friction is the only real competitor. If registration takes longer than pouring a latte, they'll walk away.

Hypothesis

Move the 'moment of delight' to the start. By gamifying the sign-up itself, we turn a data-entry chore into a dopamine hit.

03

Solution

QRSpin turns a physical visit into a persistent digital relationship — with no app, no password, and a moment of play built in at every step.

A QR code and an NFC card are the only hardware required. Everything after — game, member hub, stamp card, wallet pass, review prompt — is automatic.

Customer Journey · Workflow Detail

1

The Entry Point: One field, zero passwords

Registration is a 10-second bridge, not a barrier. A customer scans the QR code at the venue. A web page opens instantly. They enter their email, opt in to marketing, and they're done. We use signed tokens in the confirmation email to ensure the customer is never more than one click away from their data, on any device.

Banner

Registration template option 1

Businesses can choose a registration template.

Registration template option 2

Businesses can choose a registration template.

2

The Hook: Play before you pay

We reward the joining, not just the spending. By triggering a custom-configured game (Spin Wheel or Scratch Card) immediately after email confirmation, we establish a positive feedback loop before the customer even pays their bill.

Spin Wheel — triggered on email confirmation, before any stamp

The game rewards joining, not just spending. It creates an immediate positive experience before any loyalty transaction has occurred — consistently more effective at forming habits than delayed reward systems.

3

The Multiplier: Reviews at peak happiness

Timing is everything. We surface the Google Review prompt at peak happiness—immediately after a game win. This turns a passive customer into a local advocate without a single word from the staff.

Automated review prompt — zero staff effort

Owners with 10 reviews become owners with 50. Better Google Maps ranking means more foot traffic. The loop is self-reinforcing and requires nothing ongoing from the owner.

4

Branded member hub — their home for the loyalty relationship

After the game, the customer lands on their member hub: stamp card, prize history, active promotions, wallet download. Fully branded to the business — colours, logo, and hero photo auto-pulled from Google Places on owner setup. It looks like the restaurant's own product, not a white-label loyalty tool.

Member hub — branded, passwordless, persistent

The owner can push promotions and announcements to this surface at any time. It's a live marketing channel that the business owns permanently, not a platform they rent.

Return Visits

One tap to stamp. Then a game. In under ten seconds.

On each return visit, the customer shows their phone. Staff tap it with the NFC DNA Card. The stamp registers in under three seconds. A Scratch Card game triggers immediately after — configurable per business, with independent prize caps from the registration game.

NFC tap → stamp registered

One motion from staff. No screen to show, no barcode to scan. The card does the work.

Scratch Card — fires immediately after stamp

The slower reveal of a scratch card builds anticipation in a way a spin wheel doesn't — particularly effective in table-service settings where customers have a moment to engage.

Staff holding NFC DNA Card

The NFC DNA Card

Each card carries a unique UID cryptographically bound to its location — stamps can only be issued by the physical card at that specific venue. Replacing a card invalidates the old binding instantly.

Gamification

Three game types. Browser-native. Fully configurable.

Owners configure their game from the dashboard — prizes, win odds, claim caps — independently for sign-up and stamp triggers. No app required on either end.

Spin Wheel

Customisable segments, win probabilities, and animated reveal. High energy — works well for cafés and quick-service spots.

Scratch Card

Tap to reveal. The slower reveal builds anticipation. Particularly effective for table-service restaurants and older demographics.

Grand Prize

A high-value prize unlocked at a milestone stamp. Creates a clear long-term goal and drives deliberate return visits.

Wallet Integration

The stamp card lives in Wallet — and talks to the phone.

One tap adds the loyalty card to Apple or Google Wallet. Stamp count syncs in real time after every NFC tap. When the customer walks within 100m of the venue, the card surfaces on their lock screen automatically.

Three branded wallet card designs

Fully branded wallet passes — each business looks distinct

Brand colours, logo, and stamp progress all live in the wallet card. Three businesses on the same platform look completely different to their customers.

GPS proximity alert — fires within 100m

Wallet is an upgrade, not a gate. Customers who add it get geo-triggered reminders. Those who don't still collect stamps and redeem rewards normally.

Owner Dashboard · In Detail

Every tool an owner needs. Nothing they don't.

The dashboard was designed for owners who aren't technical. Every setting is plain-language, has a live preview, and saves instantly. After initial setup, the system runs itself.

Dashboard · 01

Stamp Card Designer

Owners design their virtual stamp card — choosing from over 100 stamp icons, setting colours and background, and defining the reward goal. Changes preview in real time. The same configuration generates both the web card and the Apple/Google Wallet pass template simultaneously.

Stamp card designer — real-time editor, 100+ icon library

Fast enough to configure between customers. Icon selection, colour pickers, and stamp goal all update live — exporting to both web and wallet formats from one configuration.

Dashboard · 02

Apple & Google Wallet Customizer

Wallet passes are generated server-side and signed with both Wallet APIs. Owners preview Apple and Google Wallet layouts before publishing. After publishing, stamp count and progress fields update via push notifications after each NFC tap — no customer action required to see the current state.

Wallet pass designer — Apple and Google, side-by-side preview

One configuration generates passes for both platforms. The icon chosen in the stamp card designer carries through to both wallet formats — consistent branding across every surface.

Dashboard · 03

Game Setup & Prize Accounting

Owners set prize tiers, win probabilities, and daily/weekly/monthly caps. Consolation prizes fire automatically when the primary pool is exhausted. Expiry dates and "redeem on next visit" rules are evaluated at claim time — preventing stockpiling. All caps are enforced server-side with atomic increments.

Prize configuration — odds, caps, and consolation prizes

The economics of gamification are delicate. The customizer gives owners precise control over both levers without needing to understand probability math — or risk going over budget.

Dashboard · 04

Analytics & Customer Email List

The analytics view shows signups, stamp activity, game participation, prize redemptions, and social link clicks. The customer list shows every verified opt-in — name, email, signup date, stamp count — fully exportable. Every row is a real customer the owner can contact permanently.

Analytics — signups, stamps, games, redemptions

Owners see what's working at a glance — no data tool required.

Customer list — named, verified, CSV-exportable

Every row is a verified, opted-in contact the business owns. Exports directly to Mailchimp, Klaviyo, or any email tool.

Engineering

Under the hood.

Each part of the product required a distinct technical system. Here's what's running beneath the surface.

Security · NFC

HMAC-validated stamp verification

Each NFC card carries a unique UID paired with a server-side HMAC secret bound to its location. Every tap generates a one-time cryptographic token — validated server-side before a stamp is issued. Screenshots, shared links, and replayed taps are rejected. Replacing a card invalidates the old binding.

Auth

Passwordless auth via signed token

No passwords, no OAuth flows. Registration issues a signed token embedded in the confirmation email link. That URL is the customer's permanent access credential — bookmarkable, device-agnostic, and scoped to exactly one member account.

Onboarding · Google API

Google Places auto-onboarding

An owner enters their phone number. The system queries Google Places to resolve their business — name, address, logo, hero photo — and generates a live branded customer preview before they've configured a single setting. Median setup time: under 3 minutes.

Business Logic

Prize accounting engine

Every prize tier carries configurable daily, weekly, and monthly caps enforced with atomic server-side increments. Consolation prizes fire when the primary pool is exhausted. Expiry and 'next visit only' rules are evaluated at claim time — not issue time.

Wallet API

Apple & Google Wallet with real-time push

Passes are generated and signed server-side using both Wallet APIs. Stamp count, progress bar, and promotional message update via push after each NFC tap — no customer action required to see the current state.

Architecture

Multi-tenant location isolation

A customer can visit two QRSpin businesses in the same day. Their member hubs, stamps, prize histories, and branding are fully isolated by location — scoped to each venue's NFC card UID. Two independent loyalty relationships. One system.

04

My Role

End-to-end execution. As a solo founder, I translated field research into a production-ready SaaS. My focus was on architectural reliability—ensuring that a '3-second stamp' works every time, even in high-pressure service environments with spotty Wi-Fi.

Product

  • Validated the problem through 15+ owner and customer interviews in Vancouver
  • Defined MVP scope: what to build, what to cut, what to validate first
  • Designed onboarding, pricing model, and prize accounting system; iterating on live feedback

Design

  • End-to-end UX — customer journey (scan → game → member hub → stamp) and owner dashboard
  • High-contrast, accessible UI designed for variable lighting — patios, dim dining rooms
  • Gamification system: game types, prize tiers, win probability, and delight moment sequencing
  • Stamp card designer, QR customizer, game configurator, and wallet card editor in the owner dashboard

Engineering

  • Full-stack Next.js — NFC UID + HMAC verification, location segmentation, Wallet pass API
  • Passwordless member pages via signed token in email confirmation link
  • Google Places auto-onboarding — phone number to fully branded preview in seconds
  • Prize accounting engine with server-enforced daily/weekly/monthly caps and atomic increments
  • Apple and Google Wallet with real-time stamp push updates and GPS proximity alerts
  • Automated review prompts, referral flows, Instagram incentives, and email list export
05

Impact

80%+Sign-up completion rate↑ vs ~30% with full form
<3minOwner setup time↓ from ~25 min in early beta
3sStamp flow end-to-endNFC tap to stamp registered
0Staff actions required per visitFully hands-off for the team

The 80%+ sign-up rate is the number I'm most focused on. It's a direct measure of how much friction remains in the onboarding flow — and it's the foundation everything else (reviews, reminders, repeat visits) is built on. Every percentage point here is a customer the owner can reach again.

06

Challenges & Tradeoffs

Game timing — celebration vs. confusion

Triggering a game on sign-up felt like a great idea in theory. In early testing, some customers thought they were playing to win a stamp — not that they'd already joined and the game was a bonus. The game and registration felt tangled.

Decision

Separated the confirmation state from the game trigger with a clear success screen: 'You're in. Now spin.' The 1.5-second pause made the causal chain obvious. The confusion disappeared.

NFC Security vs. Operational Speed

High-security cryptographic rotation usually introduces latency. In a busy lunch rush, a 2-second delay or a failed stamp is a failure. For a restaurant at peak service, speed is a non-negotiable operational requirement.

Decision

Built a hybrid: cryptographic tap verification with an offline grace window. Stamps validate in real time when connected and reconcile on next sync when not. Sacrificed some theoretical security at the margins for reliability that actually works in the field.

The 'White-Label' Identity Crisis

The same customer might visit three different QRSpin businesses in the same week. If the platform feels identical at all of them, it cheapens the brand of each. But if every location is a completely separate codebase, the maintenance burden kills the product.

Decision

Segmented at the data and UI layer — same platform, but the NFC UID routes to a completely isolated member page per location. Two different loyalty relationships from the customer's perspective. One maintainable system from mine.

What I cut from v1: Manual push campaigns

Owners asked for manual push blasts — 'Happy Hour at 4pm today.' Technically straightforward. But it changes the product's responsibility model: now I'm a messaging platform, not a set-it-and-forget-it tool.

Decision

Cut it from v1. Automated geo-triggered and time-triggered Wallet notifications stayed in. Manual campaigns are on the roadmap behind a trust gate: owners must demonstrate non-spammy patterns before unlocking broadcast access.

07

Learnings

What surprised me

Older restaurant owners — the demographic I expected to be most resistant — were the most enthusiastic about the Google Places auto-fill. The 'wow' wasn't the gamification or the NFC tech. It was seeing their own business photo and name appear before they'd typed anything. That moment of recognition is what made it feel safe to trust the rest of the product.

What I'd do differently

I'd get the NFC hardware in front of owners much earlier. I spent three weeks building a polished demo before showing it to a real restaurant — and the first thing the owner said was 'where does this thing sit on my counter?' A $12 NFC card holder prototype would have surfaced that question in week one and saved a significant design revision.

What assumption was wrong

I assumed the hardest sell would be 'why not just use an app.' It wasn't. Owners had already given up on apps — they'd tried them and watched customers refuse to download. The harder conversation was convincing them that something this simple could actually work. Simplicity reads as 'not enough' until you've seen the completion rate.

08

Stack

Pragmatism over over-engineering. The architecture was chosen strictly for product velocity and business ROI. Every tool was selected to minimize maintenance overhead while guaranteeing the sub-second reliability required for a live retail environment.

Core Application

Next.jsReactTypeScriptTailwind CSS

Data & Infrastructure

PostgreSQLVercelAWSPrisma

Hardware & Integrations

Secure DNA NFCApple Wallet APIGoogle Wallet APIGoogle Places API