docs: address PROJECT.md gaps (platform identity, virtual Leaf, regional organizer, custom domains, business model, dealer portability)

This commit is contained in:
Mikkel Georgsen 2026-02-28 16:01:09 +01:00
parent 27ee0a5813
commit ff6ff29af3

View file

@ -19,23 +19,27 @@ A venue can run a complete tournament offline on a €100 device with wireless d
### Active ### Active
**Phase 1 (Development Focus): Live Tournament Management** **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) - [ ] 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) - [ ] 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) - [ ] Table & seating (configurable layouts, random seating, auto-balancing, table breaks, drag-and-drop moves)
- [ ] Multi-tournament support (run multiple tournaments simultaneously) - [ ] Multi-tournament support (run multiple tournaments simultaneously)
- [ ] League & season management (configurable point formulas, standings, archives) - [ ] 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) - [ ] 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) - [ ] 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) - [ ] 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 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) - [ ] 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) - [ ] Events engine (triggers, conditions, actions — sounds, messages, view changes, webhooks)
- [ ] Export (CSV, JSON, HTML) - [ ] Export (CSV, JSON, HTML)
- [ ] NATS-based sync (Leaf → Core, queued offline, replayed on reconnect) - [ ] NATS-based sync (Leaf → Core, queued offline, replayed on reconnect)
- [ ] Operator UI (mobile-first, touch-native, dark-room ready, TDD-depth with modern UX) - [ ] 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) - [ ] 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** **Phase 2 (Development Focus): Cash Game Operations**
- [ ] Waitlist management (by game type and stakes, display integration, notifications) - [ ] 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) - [ ] Player alerts (waitlist position, seat available, preferred game opened)
**Phase 3 (Development Focus): Complete Venue Platform** **Phase 3 (Development Focus): Complete Venue Platform**
- [ ] Dealer management (scheduling, skill profiles, shift trading, clock-in/out, rotation) - [ ] 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) - [ ] 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) - [ ] Private venues & memberships (privacy modes, invite codes, member tiers, guest system)
- [ ] Venue analytics & reporting (revenue dashboards, player analytics, operational analytics) - [ ] Venue analytics & reporting (revenue dashboards, player analytics, operational analytics, multi-venue benchmarking)
- [ ] Public venue presence (venue profile page, online event registration, schedule publishing) - [ ] Public venue presence (venue profile page, online event registration, schedule publishing, SEO-optimized)
**Phase 4 (Development Focus): Native Apps & Platform Maturity** **Phase 4 (Development Focus): Native Apps & Platform Maturity**
- [ ] Native player app (iOS + Android — push notifications, Wallet integration, social features) - [ ] 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 - BravoPokerLive: US waitlist app, no tournaments, no displays
**Business Model:** **Business Model:**
- Free tier: Full tournament engine on virtual Leaf in cloud (requires internet) - 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 + display nodes + offline operation - 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): Everything + cash games + dealers + loyalty + analytics - Pro tier (€100/mo = €25 offline + €75 features): Everything in Offline + cash games + dealer scheduling + loyalty + memberships + analytics + TDD import + priority support
- Casino tiers (€249-999+/mo): Multi-room, cross-property, enterprise features - 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:** **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. 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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)*