A calm card-flip game for short mental resets.
Built for people whose brains are running a little too hot.
Play the live app | Launch copy
- It has a clear product angle instead of feeling like another generic starter repo
- The game loop is tiny, tactile, and easy to understand in seconds
- Zen mode changes pacing, motion, and audio rather than acting like a cosmetic toggle
- It works as both a playable product and a readable full-stack sample
- Standard 52-card deck with simple
HIGH/LOWdecisions - Score-only gameplay with no payouts or redeemable prizes
- Softened visual mode for calmer play sessions
- Ambient loop support with synth fallback
- Local persistence plus optional Supabase auth and cloud sync
- Shared billing scaffold and Android companion app
- Open the app, look at the current card, and choose
HIGHorLOW - Ties are
Push, so score stays flat Fair,Demo: Always Win, andChaos: Always Losemodes make it useful for both play and testing- Mini goals and streak tracking give light structure without turning it into grindy progression
- Next.js App Router
- TypeScript
- Tailwind CSS
- Supabase for auth, cloud save, and leaderboard data
- Stripe billing scaffold
- Native Android companion in
android-native/
npm install
npm run devOpen http://localhost:3000
npm run build
npm startnpm testThis repo includes magic-link auth and cloud sync for the web app.
- Copy
.env.exampleto.env.local. - Add:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- Run the SQL in
supabase/migrations/0001_game_profiles.sql. - Enable email magic-link auth in Supabase.
- Allow these auth URLs:
http://localhost:3000https://highlowgame.vercel.app
Do not expose the service role key in the browser.
Shared billing and entitlement support is included for:
web_onlyall_accessfor web + Android
See supabase/migrations/0003_billing.sql and docs/BILLING_SETUP.md.
- Launch copy is in
docs/LAUNCH_COPY.md - Third-party audio tracking lives in
THIRD_PARTY_AUDIO.md - Replace the promo image with a real gameplay GIF when you capture one
This is a score-only game experience. No cash value, no payouts, and no redeemable prizes.