Phoenix Portal v0.1.0 Beta
Initial public beta release of Phoenix Portal — the web companion dashboard for Project Phoenix, a community rescue project keeping Vitruvian Trainer machines alive after company bankruptcy.
🔥 Core Features
Dashboard & History
- Real-time Dashboard — At-a-glance workout stats, streak tracking, recovery score, goal progress rings
- Workout History — Complete searchable/filterable workout log synced from mobile app
- Session Detail View — Deep dive into individual workouts with exercise breakdown
Analytics & Insights
- Performance Analytics — Volume trends, PR tracking, muscle group distribution
- Biomechanics Analysis — Velocity zones, ROM trends, asymmetry detection
- Training Load Gauge — Acute:chronic workload ratio monitoring
- Muscle Heatmap — Visual muscle group coverage with react-muscle-highlighter
- Community Distribution Charts — See how your stats compare
Advanced Data Visualization
- Force Curve Charts — Concentric/eccentric power output visualization (@visx)
- Asymmetry Gauges — Cable A/B balance monitoring (2% threshold)
- Power Output Graphs — Set-by-set performance visualization
- Consistency Widgets — Training pattern tracking
Session Replay (FLAME tier)
- 50Hz Telemetry Playback — Rep-by-rep motion replay canvas
- Timeline Navigation — Scrub through workout timeline
- Set Navigation — Jump between sets
- Fatigue Summary — Per-set fatigue analysis
- Quality Badges — Rep quality indicators
Routine Builder (FLAME tier)
- Visual Routine Editor — Drag-and-drop exercise ordering
- Superset Support — Group exercises with rest period configuration
- AMRAP & PR-scaling — Advanced workout modifiers
- Routine Sharing — Publish to community library
- Routine Detail View — Preview routines before using
Training Cycles (FLAME tier)
- Multi-week Periodization — Build structured training blocks
- Day-by-Day Planning — Assign routines to specific days
- Cycle Activation — One active cycle at a time (enforced)
Community Hub (FLAME tier)
- Routine Library — Browse and clone community routines
- Vote System — Upvote/downvote community content
- Creator Stats — Track routine popularity
- Blocked Users — Content moderation controls
Leaderboards & Challenges
- Global Leaderboards — Compete on volume, PRs, streaks
- Challenge System — Time-limited competitions
- Rankings — Real-time position tracking
Goals & Recovery
- Goal Tracking — Set and monitor fitness objectives
- Recovery Scoring — Sleep/readiness integration
- Progress Rings — Visual goal completion
Integrations (FLAME tier)
- Strava Connect — Sync activities bidirectionally
- Fitbit OAuth — Connect wearable data
- Garmin Webhook — Automatic activity import
- Hevy Import — Migrate workout history
- Liftosaur Import — Migrate programs and logs
💎 Subscription Tiers
| Tier | Monthly | Annual | Features |
|---|---|---|---|
| FREE | $0 | $0 | Landing page, pricing info |
| EMBER | $5 | $49/yr | Cloud sync, history, dashboard, goals, recovery |
| FLAME | $15 | $149/yr | Analytics, community, routines, cycles, integrations |
| INFERNO | $25 | $249/yr | Session replay, advanced biomechanics (coming soon) |
🛠 Technical Stack
- Frontend: React 19, Vite 7, TypeScript, Tailwind CSS v4
- UI Components: shadcn/ui (50+ Radix UI primitives)
- State: Zustand 5 (client), TanStack Query 5 (server)
- Visualization: Recharts 3, @visx, ECharts 6, react-muscle-highlighter
- Animation: Framer Motion (reduced-motion support)
- Backend: Supabase (PostgreSQL, Auth, Realtime, Storage)
- Edge Functions: 20 Deno functions for billing, OAuth, sync
- Payments: Paddle (Merchant of Record)
- Error Tracking: Sentry (cookie-consent-gated)
- Testing: Vitest 4, Playwright 1.58, Testing Library
- Linting: Biome 2.4
📱 Mobile Sync
Full bidirectional sync with Project Phoenix mobile app (KMP):
- Push: Workouts → Supabase (realtime broadcast to portal)
- Pull: Routines, cycles → Mobile SQLite
- Conflict Resolution: Domain-aware strategy (mobile authoritative for BLE data)
- Pagination: Cursor-based, 100 entities/page
🎨 Phoenix Theme
Dark theme with ember color palette:
- Background:
#0D0D0D - Ember:
#FF6B35 - Flame Red:
#DC2626 - Gold:
#F59E0B - Forge Green:
#10B981 - Custom animations:
flame-flicker,ember-rise,phoenix-glow
📋 Known Limitations (Beta)
- INFERNO tier not yet purchasable (session replay access via FLAME)
- External activity sync queue processing is manual
- Apple Sign-In token rotation requires manual script
🙏 Community
This project exists because of the Vitruvian Trainer community's refusal to let great hardware die. Special thanks to the beta testers and early supporters.
Full Changelog: First release