OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
The music career game where you play every show. Win real VIP experiences and merch. Get early access.
GamesTypeScript · PLpgSQLGitHub @edmondmeehanOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Video Game, Tourstar
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A music career game: take an artist from Mom's basement to global superstar. Rebuilt from the Lovable prototype (tourstar-ideas.lovable.app) as a codebase you own.
npm install
npm run dev # play in a browser at http://localhost:5173
npm run build # production build in dist/
The ios/ and android/ folders are real native projects that wrap the game.
iOS uses Swift Package Manager, so you don't need CocoaPods.
npm install
npm run ios # builds the game, copies it into ios/, opens Xcode
co.please.tourstar is taken in your account.After changing game code, run npm run ios again (or npm run sync and press Run in Xcode).
Android: install Android Studio, then npm run android.
Native extras: real haptics through the Taptic Engine, saves stored in native app storage
(Capacitor Preferences, which iOS won't purge like browser storage), dark status bar, portrait lock,
app icon and splash screen (regenerate from assets/ with npx capacitor-assets generate),
and the Android back button.
Players start as guests (saved on the device). After their first gig they're offered an account;
they can also sign in or create one from Account or the Create screen. Once signed in, the career,
settings and purchases sync to the saves table automatically (2s after each change, and on launch).
Signing in on a device that has a different career asks which one to keep. A pill in the header shows
GUEST / CONFIRM EMAIL / SAVING / SYNCED / OFFLINE.
vtpgrxavyspadmubfwtb, us-east-1). Keys are in .env
(the publishable key is meant to ship in apps; row-level security means players can only read and write their own save).public.saves (one row per player, JSON game state, with artist_name and fame columns for future leaderboards/admin).delete-account lets players delete their account in-app (Apple requires this)./login (sign up, sign in, forgot password, Apple, Google), /auth/callback, /reset-password.co.please.tourstar:// deep link.co.please.tourstar://**http://localhost:5173/**https://play.tourstar.app/** (also set it as the Site URL)https://vtpgrxavyspadmubfwtb.supabase.co/auth/v1/callback).https://vtpgrxavyspadmubfwtb.supabase.co/auth/v1/callback).Email/password works as soon as step 1 is done. Apple and Google buttons show an error until steps 2–3 are done.
/admin)Open /admin in the web build (or Account → Open admin once you're an admin). Access is limited to the
admins table; [email protected] becomes the first admin automatically on first sign-in with a confirmed email.
Every admin query is also enforced in the database (row-level security + admin-only functions).
| Tab | What it does |
|---|---|
| Insights | Players today / in range (by device, guests included), accounts, cloud saves, gigs, releases; daily charts; level, genre and activity breakdowns |
| Players | Search signed-in players; level, fame, fans, cash, gigs, releases, purchases, last sync |
| Finance | Placeholder until RevenueCat; counts simulated purchases |
| Marketing | Send banner or pop-up announcements with an optional button to any screen; turn off / delete |
| Balance | Live tuning: energy speed, gig/release payouts, fame gains, event rate, daily rewards, rename cost, starting cash |
| Events & gifts | Fire any random event, or gift stats (cash, energy, fame…) to all players, once each |
| Rewards store | Add/edit real goods players redeem with points (cost, level gate, stock, per-player limit, sizes, shipping). Review redemptions and move them through Pending → Approved → Shipped → Delivered; Rejected refunds the points |
| Raffles | Create raffles (ticket price in points, level gate, ticket cap, free daily entry, official rules), track entrants/tickets, close early, draw a weighted random winner |
| Orders | Distribution orders (empty until Stripe checkout is on) |
| Traffic | New players by source (?utm_source= tags, referrers, App/Play Store) and platform |
| AI music | Status of the built-in synth, ElevenLabs and Replicate |
| Admins | Add (invite by email) or remove admins; the last admin can't be removed |
Players pick up announcements, balance changes, events and gifts on launch and every 5 minutes.
Analytics events (first_open, session_start, career_created, gig, release, level_up, daily_claim, lockout,
sign_in, premium_purchase) are batched from the app every 10s into analytics_events.
Code: src/admin/* (lazy-loaded, so players never download it), src/lib/live.ts (analytics + live-ops in the game),
src/game/config.ts (balance defaults and limits). SQL: supabase/migrations/.
src/components/Coach.tsx): new careers get Mo, their manager, who walks them through booking the Open Mic,
playing it, then releasing a first track (+25 points at the end; skippable). Careers from before the tutorial never see it.src/game/quests.ts): 3 per day (always one "play shows" quest), picked per career and day, reset at local midnight.
Each pays points and a little cash; finishing all three pays +50 bonus points.Players earn reward points by playing only (they can never be bought): gigs by grade (S 40, A 25, B 15, C 8, D 3, +5 sellout, +3 fan request),
releases (10 + quality/10), daily claims (10 + 2 per streak day up to 7) and level-ups (100 × level). Admin → Balance → Reward points scales all of it.
Points earned live in the save (career.pointsEarned); spending is recorded in Supabase (reward_redemptions, raffle_entries) through the
redeem_reward and enter_raffle functions, which check level, stock, limits and balance and lock per player so points can't be spent twice.
Store → Rewards / Raffles need an account; the Shop tab (game-cash boosts) works for guests.
Raffles follow sweepstakes basics: points aren't purchasable, a free daily entry, official rules on every raffle, and "Apple is not a sponsor" (App Store guideline 5.3). Get legal review of the rules before running real prizes; NY and FL require registration and bonding over $5,000 in prizes.
npm run build:preview makes one self-contained HTML file (used for the claude.ai preview page). Accounts are switched off in that build because the preview page can't reach Supabase.
Deploys as a static site (Vercel, Netlify, Cloudflare Pages). On Vercel, add a rewrite of
/(.*) to /index.html so deep links like /tour work.
/ arcade start screen: PRESS START (tap / Enter / Space) with a flash, synth blip and vibration/create: name, 8 genres, 9 personas (each changes starting stats), optional theme song/dashboard: stats, level progress, gossip ticker, mood, daily reward and streak (3/7/14/30), rename (first free, then $50K)/tour: 7 tour sizes from Open Mic to Stadium Encore. Every gig plays a live concert scene (Phaser): light show and LED wall on the beat, a crowd sized to attendance, pyro, a live fan counter, then the results card/album: Single, Mixtape, EP, LP with an optional generated song that's saved to the Locker/label: 4 labels, each with its own boost, cut and advance/management: manager and stylist tiers, tour bus, lighting, pyro, security/store: Please & Thank You store (VIP, merch, records, tickets, wellness)/summary: legacy score, career path, Retire & Start Over/locker: play/pause all, loop, drag to reorder (long-press on phones)/rivals: weekly chart that resets Monday, Beef / Collab, rewards by rankSaves to localStorage (keys tourstar-career, tourstar-settings, tourstar-membership).
Songs are procedural chiptune tracks generated from (seed, genre) in src/lib/chiptune.ts.
The service picker and "type the service name to confirm" flow already list ElevenLabs and Replicate.
They fall back to the built-in synth until they're connected.
careers table for cloud save, plus the synced / waiting-on-email pill/admin: Insights, Finance (RevenueCat), Marketing (announcements), balance tuning, event triggers, orders, traffic sources, AI music status, admin listaudioUrl on Songsrc/game/data.ts all balance tables (levels, tours, releases, labels, crew, store, rivals)
src/game/events.ts random events and outcomes
src/game/engine.ts pure helpers (levels, chart, mood, formatting)
src/game/store.ts zustand store, all game actions
src/game/settings.ts sound/vibration settings + membership (simulated IAP)
src/lib/fx.ts sfx + vibration
src/lib/chiptune.ts procedural song generator/player
src/lib/native.ts Capacitor: haptics, native storage, status bar, splash, back button
src/concert/* Phaser concert scene + overlay (lazy-loaded)
src/lib/cloud.ts Supabase auth + cloud save sync
src/lib/live.ts analytics, announcements, live balance, events/gifts
src/game/config.ts live balance defaults + limits
src/admin/* admin tool
src/pages/Login.tsx sign up / sign in / reset password screens
src/pages/* one file per screen
Original art: drop bg-hero.jpg and tourstar-logo-cover.png from the Lovable project into public/
if you'd rather use them than the SVG skyline (HeroBackdrop.tsx) and text logo.