Stampee is a digital loyalty card and stamp card app for a single business. You can self-host the frontend and connect it to your own Supabase project.
All access starts at /login. There is no marketplace or multi-tenant public signup flow for businesses.
- React 18
- TypeScript
- Vite
- Tailwind CSS
- Radix UI primitives
- React Router
- Supabase Auth, Postgres, Storage, and RPC functions
- Vercel Analytics
- Vercel deployment config via
vercel.json
- Node.js
- A Supabase project
-
Install dependencies:
npm install
-
Copy the environment template:
cp .env.example .env.local
-
Configure
.env.local:Required:
VITE_APP_URL: your app URL, for examplehttp://localhost:5173VITE_SUPABASE_URL: your Supabase project URLVITE_SUPABASE_ANON_KEY: your Supabase anon key
Optional:
VITE_ENABLE_DEMO_WORKSPACE: set totrueto enable the demo workspace in developmentVITE_SUPPORT_EMAIL: support email shown in the app
-
Set up the database in the Supabase SQL Editor:
supabase/migration.sql -> run first for a fresh install supabase/seed.sql -> optional, run second for the local/dev demo adminNotes:
supabase/migration.sqlis the canonical fresh-install script. It includes the current schema, RLS policies, storage policies, and RPC functions.- The smaller SQL files in
supabase/legacy-patches/are upgrade or repair scripts for older or existing projects and are not part of the default new-project setup. supabase/seed.sqlis for local or development environments only because it creates a known demo account.
-
Start the dev server:
npm run dev
If you run supabase/seed.sql, it creates this development-only owner account:
| Field | Value |
|---|---|
admin@stampee.local | |
| Password | Admin1234 |
| Slug | demo |
Change the password after first login in Settings -> Account.
Do not use the demo seed account as-is in production.
npm run dev: start the Vite development servernpm run generate:sitemap: regeneratepublic/sitemap.xmlnpm run build: regenerate the sitemap, then build the production bundlenpm run preview: preview the production build locally
There is currently no automated test suite in the repo. npm run build is the main verification step for this project today.
- Single-business mode only
- No public business signup flow
- Staff accounts are created by the owner from
Settings -> Staff - Public customer-facing routes are supported for viewing issued cards and joining enabled campaigns
You can deploy the app anywhere that serves a Vite SPA, including Vercel.
- Add the same
VITE_...environment variables to your deployment platform. - If you use Vercel, you can optionally enable Vercel Web Analytics.
vercel.jsonalready rewrites client-side routes toindex.html.- Make sure your Supabase project has already been initialized with
supabase/migration.sql.
See CONTRIBUTING.md for contribution guidelines.
