diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md index 51ceb73..3c1df90 100644 --- a/.planning/PROJECT.md +++ b/.planning/PROJECT.md @@ -19,23 +19,27 @@ A venue can run a complete tournament offline on a €100 device with wireless d ### Active **Phase 1 (Development Focus): Live Tournament Management** +- [ ] Platform-level player identity (players belong to Felt, not venues — UUID profiles span all venues, tournament history/stats/league standings are portable, data travels with the player if a venue leaves Felt; this is the core network effect and must be in the data model from day one) +- [ ] Virtual Leaf architecture (same Go codebase runs as physical Leaf on ARM64 SBC or as virtual Leaf instance on Core cloud infrastructure for free-tier venues; free tier gets full tournament engine requiring only internet) - [ ] Full tournament clock engine (countdown, blinds, antes, levels, breaks, chip-ups, pause/resume) -- [ ] Financial engine (buy-ins, rebuys, add-ons, bounties, payouts, prize pool calculation, rake) +- [ ] Financial engine (buy-ins, rebuys, add-ons, bounties, payouts, prize pool calculation, rake — all int64 cents, never float64) - [ ] Player management (database, registration, bust-out tracking, chip counts, action history) - [ ] Table & seating (configurable layouts, random seating, auto-balancing, table breaks, drag-and-drop moves) - [ ] Multi-tournament support (run multiple tournaments simultaneously) - [ ] League & season management (configurable point formulas, standings, archives) +- [ ] Regional tournament organizer (free-tier feature — anyone can create cross-venue tournaments/leagues, automatic result aggregation across venues, unified leaderboards, finals management; this is the viral adoption mechanism that hooks venues from outside) - [ ] Wireless display system (node registry, view assignment, tournament clock/rankings/seating/schedule views) - [ ] Digital signage (info screens, event promos, drink specials, sponsor ads, playlists, auto-scheduling) - [ ] WYSIWYG content editor with AI assist (template gallery, AI-generated promo cards/imagery, venue branding) - [ ] Player mobile PWA (QR code access, live clock, blinds, rankings, personal stats, league standings) - [ ] Player access via Netbird reverse proxy (public HTTPS → WireGuard → Leaf, same URL from anywhere) +- [ ] Custom domain support (venues point CNAME to felt subdomain, Netbird handles TLS termination and routing automatically, felt subdomain as fallback — zero IT complexity for professional venue presence) - [ ] Events engine (triggers, conditions, actions — sounds, messages, view changes, webhooks) - [ ] Export (CSV, JSON, HTML) - [ ] NATS-based sync (Leaf → Core, queued offline, replayed on reconnect) - [ ] Operator UI (mobile-first, touch-native, dark-room ready, TDD-depth with modern UX) - [ ] Authentication (PIN login offline, OIDC via Authentik when online, operator roles) -- [ ] TDD data import (blind structures, player database, tournament history, leagues) +- [ ] TDD data import (blind structures, player database, tournament history, leagues, payout structures — this is the primary competitive weapon for adoption, not just a feature; zero data loss migration makes TDD obsolete on day one) **Phase 2 (Development Focus): Cash Game Operations** - [ ] Waitlist management (by game type and stakes, display integration, notifications) @@ -49,11 +53,11 @@ A venue can run a complete tournament offline on a €100 device with wireless d - [ ] Player alerts (waitlist position, seat available, preferred game opened) **Phase 3 (Development Focus): Complete Venue Platform** -- [ ] Dealer management (scheduling, skill profiles, shift trading, clock-in/out, rotation) -- [ ] Player loyalty system (points engine, tier system, rewards catalog, automated promos) +- [ ] Dealer management (scheduling, skill profiles, shift trading, clock-in/out, rotation) — dealer profiles are platform-level identity like players: work history, verified skills, and shift records belong to the dealer's Felt profile and are portable across venues +- [ ] Player loyalty system (points engine, tier system, rewards catalog, automated promos, cross-venue loyalty for multi-venue operators) - [ ] Private venues & memberships (privacy modes, invite codes, member tiers, guest system) -- [ ] Venue analytics & reporting (revenue dashboards, player analytics, operational analytics) -- [ ] Public venue presence (venue profile page, online event registration, schedule publishing) +- [ ] Venue analytics & reporting (revenue dashboards, player analytics, operational analytics, multi-venue benchmarking) +- [ ] Public venue presence (venue profile page, online event registration, schedule publishing, SEO-optimized) **Phase 4 (Development Focus): Native Apps & Platform Maturity** - [ ] Native player app (iOS + Android — push notifications, Wallet integration, social features) @@ -92,10 +96,14 @@ A venue can run a complete tournament offline on a €100 device with wireless d - BravoPokerLive: US waitlist app, no tournaments, no displays **Business Model:** -- Free tier: Full tournament engine on virtual Leaf in cloud (requires internet) -- Offline tier (€25/mo): Dedicated Leaf + display nodes + offline operation -- Pro tier (€100/mo): Everything + cash games + dealers + loyalty + analytics -- Casino tiers (€249-999+/mo): Multi-room, cross-property, enterprise features +- Free tier: Full tournament engine on virtual Leaf in cloud (requires internet, ~€0.45/mo infra cost per venue) +- Offline tier (€25/mo): Dedicated Leaf hardware + wireless display nodes + offline operation + custom domain + remote admin. Leaf hardware (~€120) free with 12-month annual plan +- Pro tier (€100/mo = €25 offline + €75 features): Everything in Offline + cash games + dealer scheduling + loyalty + memberships + analytics + TDD import + priority support +- Casino Starter (€249/mo): Independent casino, 1 poker room, 5-15 tables +- Casino Pro (€499/mo per property): Small chain, 2-5 properties, 15-40 tables each +- Casino Enterprise (€999+/mo custom): Large operators, 5+ properties, 40+ tables +- Display nodes: Sold at cost + shipping (~€30 each), no recurring fee — stateless render devices +- Hardware: No BYO. Felt hardware only — pre-configured, encrypted, secure boot **User's Development Phases vs. GSD Planning Phases:** The user's spec describes 4 product development phases (Tournament → Cash Games → Full Venue → Native Apps). These are the user's product focus areas, not to be confused with GSD's planning phases which break down the work within those development phases. @@ -121,10 +129,11 @@ The user's spec describes 4 product development phases (Tournament → Cash Game | Netbird as infrastructure backbone | WireGuard mesh + reverse proxy + DNS + SSH + firewall in one self-hosted platform | — Pending | | Authentik as IdP | Self-hosted, OIDC for Netbird + Felt, lightweight (~200MB RAM), Apache 2.0 | — Pending | | Catppuccin Mocha color system | Dark-room optimized, established palette, systematic accent colors | — Pending | -| Platform-level player identity | Players belong to Felt, not venues — creates network effects and platform lock-in | — Pending | +| Platform-level player & dealer identity | Players AND dealers belong to Felt, not venues — portable profiles, cross-venue history, network effects, platform lock-in | — Pending | +| Virtual Leaf for free tier | Same codebase runs on physical SBC or as cloud instance — enables free tier without hardware | — Pending | | No BYO hardware | Security, reliability, support consistency, controlled full chain | — Pending | | Free tier with virtual Leaf | Full tournament engine for free, costs ~€0.45/mo per venue, drives adoption flywheel | — Pending | | Proxmox VE for Core hosting | LXC + KVM, web management, PBS backup integration, scales by adding nodes | — Pending | --- -*Last updated: 2026-02-28 after initialization* +*Last updated: 2026-02-28 after initialization + gap review (platform identity, virtual Leaf, regional organizer, custom domains, business model details, dealer portability)*