/ recent work / big-black-cards
Big Black Cards
Cards-against-humanity-style party game with live cursors, presence, and reactions. Realtime is the feature.
A party game built around the assumption that the chat is more fun than the cards. Live cursors with names, click ripples, emoji reactions on plays, presence-based player lists — all over Supabase Realtime.
What’s interesting
- Three realtime layers, one socket. Presence for the player list and pointer ownership, broadcast for cursors and reactions, postgres_changes for game state (hands, plays, scores).
- Anonymous auth so players can join with one click — no email, no password, just a name.
- Schema-first. 7 tables (decks, cards, rooms, players, hands, plays, room_decks) with full RLS before a single round of the game loop was written.
Inspiration vs. fork
The open-source Massive Decks (Elm + Node) was the reference for game rules and deck format, but the codebase is a fresh build — Vite + React + TS — with a deliberately more obnoxious visual personality.
Selected updates
Pulled from the live changelog — the cadence of this build is the proof.
2026-05-23 · Bot voices. Every AI bot now uses a randomized ElevenLabs library voice — Horror Narrator, French Seductress, Pitchy Mouse Comic, the chaos cast. Bots speak short persona-flavored reactions on submit (~40% chance).
2026-05-18 · Admin panel + Card Lab. Password-gated /admin route with CRUD over every black/white/submissions card, bulk NSFW toggle, inline edit, resync. “Spice Mode” renamed to “Card Lab” so the 🌶 emoji could move to the SFW toggle.
2026-05-13 · Match-point reveal + SFW mode. Keyword-based NSFW classifier (~22% of responses tagged); Fan Favorite mechanic at (target − 1) gives the most-reacted player a once-per-game +1 that can break tied games.
2026-05-06 · How-to + Donate + Privacy. Full content pass on supporting pages; submit-a-card flow now creates the Airtable Submissions table programmatically; community cards show submitter name with a 💡 FAN badge.
2026-04-22 · Voice-off + double-click + reactions overhaul. Floating speech bubbles in silent mode, double-click to auto-submit on Pick-1 rounds, every player (human and bot) gets one dramatic bubble per round.
2026-03-04 · GPT-4o-mini powered bots. Every bot pick + judge decision reasons through the LLM in their persona’s voice. Netlify functions for bot-pick, bot-text, and on-demand card generation, with graceful fallback to keyword scoring if the key isn’t set.
2025-12-08 · Cybergoth makeover. Full visual overhaul — acid green primary, UV purple accents, black wobble title. Cursor bonk physics + procedural SFX on every action. Realtime peer cursors so you watch friends hover in shame across the room.
2025-11-23 · Initial release. Vite + React + TS + Tailwind v4 + Supabase scaffold. Anonymous play, custom pointer + hue per player, 24 emoji options.
On the roadmap
- Tournament brackets — single-elimination across rooms; winners advance.
- Theme rooms — pick a vibe on create (“Office Christmas”, “3am Existential Crisis”) and the LLM filters the deck + commentary toward it.
- Adaptive personas — after a few rounds, bots watch which jokes humans loved and nudge new persona spawns toward that taste.
- Play of the night — at game end, the LLM picks the single funniest play across all rounds as MVP.