The Shadow Boxing game I'm working on with Dex
Dexter wants /minigames to feel competitive first. The main audience is family, with room for strangers to join public games too.
The automatic game focus should be daily weather games. Every morning, the site should create that day's weather prediction game without Dexter needing to make it by hand.
The most important fun parts are the leaderboard and notifications. Players should be able to save picks, come back later, and see how they did by the end of the day.
Private games should have host controls and feel actually private. A host should be able to create a room, share a code or invite, and control the room without random people entering.
The future version should make the daily weather game feel like a real daily habit: make picks, watch the day happen, get notified, and check the final results.
The GitHub Action for the daily weather game runs several times through the morning instead of trusting one exact 6:00 AM start. GitHub can start scheduled jobs late, so the workflow is safe to retry: the first run that needs a new game commits it, and later runs do nothing if the game is already current. The workflow uses the Pacific date and verifies that today's generated weather game is actually present before it commits.
The site now includes /stock, the Market Time Machine page for exploring historical market moves.
To preview the static pages locally, run a simple local web server from the repo root, then open the matching path in a browser. For example, python3 -m http.server 8000 serves the site at http://localhost:8000/, with /stock available at http://localhost:8000/stock/.
No current items.
If Dexter asks to push and the first push attempt fails, keep trying safe approved push paths until it is pushed or there is a true blocker that needs Dexter. Do not stop just to report that the push was unsuccessful.
The minigames backend can use a real Postgres database when the server has DATABASE_URL or POSTGRES_URL set. Picks, rooms, custom games, results, notification subscriptions, and generated notification keys move into the database automatically. If no database URL is set yet, the site falls back to the old JSON storage so it can keep running.
The Render deployment is wired in render.yaml to attach a Postgres database named dexterbain-minigames-db to the backend as DATABASE_URL. After Render applies that Blueprint, /api/minigames/storage/status should report minigames: "postgres" and databaseReady: true.
The public /minigames page is also wired directly to Supabase for leaderboard entries and private rooms. Supabase tables minigame_entries and minigame_rooms use Row Level Security with public read/insert/update policies, and the page only includes the safe publishable browser key. The old Node API remains as a fallback if Supabase is unavailable.