Weekly Update
Date: 2026-05-26 To: Isaac Botkin
Beta Program & Discovery
- Received sample NDA from T.REX — reviewing and adapting it for RDP before beta release
- Following up with Lyrinda to get the individual beta tester list — discovery conversations will start as soon as that’s in hand
- Web crawler exploration for range/church pipeline on hold during build sprint
Last Week
- Stood up the backend with core features — accounts, drills, scores, events, users, leaderboards, push notifications, and media uploads
- iOS and Android app shells are taking shape (screenshots further below) — login, scoring, drill favorites, leaderboards, friends, events, range bag, dry fire training, and challenges are in progress on both platforms
- Admin dashboard has a working drill builder shell (screenshot further below) with permission-based access, search/filters, and scoring configuration
- Streamlined local development tooling and set up automated build pipelines for server, iOS, and Android
- Majority of roadmap work items are complete — remaining items are in draft
- Moved billing and event enrollment to post-MVP to keep the critical path focused
This Week
- Next round of mobile features: push notifications, content feed, media uploads, achievements
- Stand up the staging environment and begin work on server monitoring
- Start on the dashboard event builder and roster builder
- Begin UX polish on mobile and dashboard — working with placeholder styling until design guidelines arrive from Ryan
- Set up recurring calls with Isaac and Ryan — especially as staging comes online and UX/UI becomes the focus alongside core feature development
- Finalize the NDA for beta and continue discovery conversations with testers
| iOS | Android | Dashboard |
|---|---|---|
![]() | ![]() | ![]() |
Changelog
Server APIs
- Auth service — 8 endpoints: registration, login, token refresh, password reset, email verification, org invites
- Drill service — 15 endpoints: create, read, update, delete, visibility, copy, favorites, scoring profiles, courses
- Score service — 6 endpoints: create, batch create, void, list, get
- Event service — 10 endpoints: event create/read/update/delete, roster management, drill/course assignment
- User service — 11 endpoints: profile, org members, search, friendships
- Leaderboard service — per-drill, friends, and org leaderboards
- Range bag service — personal gear/equipment management
- Challenge service — friends-only challenge invites
- Location service — 5 endpoints, 19 integration tests
- Achievement service — read-only endpoints
- Content feed service — list entries and mark-as-read
- Media service — two-phase signed-URL upload flow, pluggable storage (local + DigitalOcean Spaces)
- Push infrastructure — Apple (APNs) and Google (FCM) push notifications with multi-platform routing, preferences, and token lifecycle
- 102+ integration tests across the workspace
Core Crate (Rust, shared across all platforms)
- 12 entity models with full validation
- Scoring engine — 5 calculation methods (HitFactor, TimePlus, PointsOnly, TimeOnly, PassFail)
- Offline queue with append-only score sync
- Proto conversion layer — type-safe conversions for all 20 entities + 11 enums
- ScoringEngine — offline-first state machine with UniFFI exports
Database
- 27 tables, 16 Postgres enums, leaderboard indexes
- Embedded Postgres via CLI — auto-downloads on first run, no Docker required
- CLI commands: db start, stop, migrate, rollback, reset
Mobile (iOS: SwiftUI, Android: Jetpack Compose)
- UniFFI bindings (Universal Foreign Function Interface) — both platforms call Rust core natively
- Auth — login, register, reset password, secure session persistence, token refresh
- 4-tab shell navigation
- Scoring — offline-first engine, score queue management, score history
- Event browsing
- Per-drill leaderboard views
- Friends list and user search
- Drill favorites
- Range bag with shared validation and offline cache
- Dry fire training with par timer
- Challenges with friends-only invites
Dashboard (Dioxus — Rust compiled to WebAssembly)
- Auth flow — login, register, reset password, email verification, session management
- Drill builder — create, read, update, delete, role-based UI visibility, search/filters, step reorder, zone overrides, scoring profile selection
Tooling & Infrastructure
rangedayCLI — serve (multi-target), setup, build, test, test-summary, check, fmt, bindings, proto, db lifecyclerangeday serve ios,android— starts embedded Postgres, runs migrations, starts server, builds + launches app, tears down on Ctrl+C- ConnectRPC transport (switched from tonic)
- CI pipelines: server, iOS, Android (GitHub Actions)
- Self-hosted macOS CI runner for iOS builds
- HTTP request tracing, cross-origin request handling, pre-commit hooks (Rust linting + doc linting)
- 22 proto files across 15 services with schema validation
Docs & Planning
- 45 roadmap work items with dependency graph
- Decision docs: Native App Configuration, Instance Verification and Licensing, Dual Protobuf Runtime
- Billing and event enrollment moved to post-MVP
- 8+ idea notes captured (dry fire tracking, BLE triggers, SQL perf trending, ballistic calculator quiz, etc.)


