Roadmap — Pro & New Features
Everything beyond replacing the legacy app at parity. Once existing users can migrate to the new native apps (Roadmap — Legacy App Replacement), this is where we expand:
- New shooter surfaces the Flutter app never had — the web PWA and the marketing site
- The paid Pro SaaS layer for organizers — organized events, the admin dashboard, org management, white-label, and shared SSO
- Post-MVP and Future milestones
Builds on the shared platform foundation in Roadmap — Legacy App Replacement (server, core auth, infrastructure). Each work item links to its full spec in items/.
MVP
Auth & Identity
- SSO Origin — shared auth origin, HttpOnly session cookie, silent restore across dashboard and PWA, deployment-configurable for white-label
New Shooter Surfaces
The same shooter features as the native apps, delivered on the web.
PWA
- ✅ PWA Foundation & Shell — Dioxus scaffold, auth, 4-tab shell, service worker, manifest, profile, offline indicator
- ✅ PWA Scoring & Offline Queue — drill list, score entry, IndexedDB queue, sync, score history/detail, void
- ✅ PWA Events & Range Bag — event list/detail, gear CRUD, scheduled range days, calendar export
- ✅ PWA Social & Training — friends, challenges, leaderboards, achievements, content feed, favorites
- ✅ PWA Media & Dry Fire — media upload/gallery/share, dry fire browsing, par timer
Marketing
- ✅ Marketing Site — static HTML + Tailwind CSS landing page, links to dashboard and app downloads
Events
- ✅ Event API — ConnectRPC service for event CRUD, roster management (the core capability RDP adds; surfaced read-side in the shooter clients via Event View / PWA events)
Dashboard (Web)
- ✅ Dashboard Auth — login, registration, password reset UI
- ✅ Drill Builder — create and edit drills with scoring profiles, diagrams, required items
- ✅ Dashboard Shared Contracts — navigation shell, UX patterns, component contracts for all dashboard features
- ✅ Event Builder — create events, assign courses/drills, set dates
- ✅ Roster Builder — manage participants, assign drills, placeholder users
- ✅ Score Dashboard — sortable tables, graphs, CSV export
- ✅ Org Settings — org management, member roles, branding (white-label)
Infrastructure
- ✅ Playground POC Hosting — CF Access–gated demo catalog at playground.range-day.app (Cloudflare Pages), for previewing ideas/styling
Post-MVP
- Billing Module — Authorize.net integration, subscription management, event enrollment payments
- Event Enrollment — browse events, pay and enroll (Authorize.net)
- Admin analytics dashboard (usage stats, engagement metrics)
- Shot timer integration (camera OCR + BLE)
- 3D drill builder (Bevy/WGPU)
- Stripe migration (when revenue thresholds are met)
- Zitadel auth migration (when MFA/federation needed)
- PWA background sync + camera access
- Server-side rate limiting (supplement CloudFlare for white-label deployments without CF)
- White-label native app configuration (server URL, MDM)
- Org discovery and public drill catalog
- Cross-run course leaderboards (
GetCourseLeaderboard, per-course / per-event / per-org) — beyond legacy parity (legacy only ranked within a single run, which ships already); parked by the msd-course-leaderboards 2026-07-13 decision with the per-run aggregate +ListCourseRunsfoundation ready - Upgrade Quartz to latest version (pinned to v4.4.0 due to v5.0.0 breaking changes)
Future
- Competition scoring and public scoreboards
- LE qualification tracking and compliance reporting
- Military deployment integration (LDAP, enlistment records)
- Instructor marketplace (find nearby instructors)