Skip to content

EquiTrail — Complete Feature List

© 2026 EquiTrail / Nossie Consultancy B.V. — Proprietary & Confidential Updated: 2026-06-05 — v3.5.6+56 Source of truth: actual code, not plans. Read every screen + service before editing. Legend: 🆓 Free · 🔒 PRO only · ⚠️ UI exists, partial · 🔜 Planned (separate section)


✅ IMPLEMENTED — In the app now


1. Home Screen (Dashboard)

  • Large gradient header (app logo, greeting)
  • Quick stats bar: total rides count · total km ridden
  • Quick Start button — one tap to open Track screen
  • Horse scroll — horizontal carousel of your horses (tap → horse detail)
  • Recent rides list — last 3 rides with distance, duration, tap → detail
  • FOMO banner — rotating messages ("X ruiters rijden nu in jouw buurt…")
  • Pending route banner — if website pushed a route to your account, banner appears on open with one-tap navigate

2. Tracking — Record Screen (Tab Switcher)

  • Three-mode tab bar: GPS Rit / Arena / Springen
  • Primary mode setting (which tab appears first — configurable in Settings)
  • IndexedStack — all 3 tracking screens stay alive when switching tabs
  • App bar buttons change per active mode

3. GPS Ride Tracking

  • Start / Pause / Stop a GPS session
  • Real-time map — live GPS trail drawn as gait-coloured polyline
  • Green = walk · Orange = trot · Red = gallop
  • Live stats panel: distance (km) · duration (stopwatch) · current speed · average speed · max speed · elevation gain (m)
  • Gait detection — automatic from GPS speed:
  • Walk < 8 km/h · Trot 8–20 km/h · Gallop > 20 km/h
  • Live gait label + colour indicator
  • Live calorie calculation — rider weight + horse weight (kg), updates every GPS point
  • Live weather chip — temperature (°C) · wind speed + direction · humidity · UV index
  • Photo capture during ride — camera button in app bar, photos stored per-ride
  • POI overlay toggle — shows nearby points of interest on map:
  • 🍽️ Restaurants · 🍺 Pubs · ☕ Cafés · 🏨 Hotels
  • 💧 Horse watering points (drinkwater for horses)
  • 🐴 Horse facilities (hitching posts, horse parking)
  • Add custom POI at current GPS position
  • Hazard report button (during tracking):
  • 7 hazard types: 🌲 Fallen tree · ⚠️ Broken road · 🚧 Construction · 🕳️ Hole/pit · 🌿 Low branch · 💧 Water/flood · ❗ Other
  • Pin appears on map, visible to other riders in ~20 km
  • Group ride invite — invite friends before starting, mock friend avatars shown on map
  • Draft / crash recovery — saved every 10 GPS points, restored automatically on reopen
  • Foreground service notification — keeps GPS running when screen is locked
  • Ride naming dialog — custom name on stop (pre-filled with date/time)
  • Cloud upload on save — ride + track points + photos to Firestore + Firebase Storage
  • Feed post created automatically (opt-in: photo sharing toggle)

4. Arena / Indoor Training Mode

  • GPS-based circle detection (left hand / right hand)
  • Circle count with direction history
  • Live direction indicator (current hand: L / R)
  • Gait distribution during session — Walk / Trot / Canter percentage
  • Estimated stride count (speed-pattern based)
  • Session timer + total distance
  • Save session summary to ride history

5. Jumping Training Mode

  • GPS altitude-based jump detection:
  • Trigger: altitude rise ≥ 0.4 m within 3 seconds, followed by descent
  • Jump count per session
  • Max height per jump (GPS altitude delta in metres)
  • Jump width (horizontal span in metres)
  • Running distance + pace during session
  • Session timer
  • Jump history list within session (height + width per jump)

6. Navigation

  • Destination search — type address, place, or POI name
  • Address autocomplete — Nominatim API, 5 suggestions, 400 ms debounce
  • Loop route planning — choose 2–30 km round trip, GraphHopper horse profile
  • Turn-by-turn directions — spoken + on-screen step-by-step during ride
  • Branch order — draggable waypoints to reorder route

Route Library (saved routes)

  • GPX import from device files
  • Route list — all saved routes with distance, elevation, map thumbnail
  • Route detail — full map trace · elevation profile · total stats · description
  • Ruiterlabel badge on certified Dutch horse routes
  • Favourites — star routes to top of list

Trail Suggestions Screen

  • Loop options — 5 / 10 / 15 / 20 km loops from current location
  • "Explore new terrain" — suggests destinations you haven't ridden yet based on GPS history
  • Estimated km + compass direction per suggestion

Ruiterlabel Info Screen

  • What Ruiterlabel is and certification requirements
  • Links to Natuurmonumenten and Buitenrijden.nl route databases
  • CTA buttons to external sites

OSM Horse Trail Map (/ruiterpaden)

  • Dedicated map screen showing all horse-designated trails from OpenStreetMap
  • NL / BE / DE / FR coverage

7. Horse Management

  • Add / Edit / Delete horses
  • Fields: name · breed · age · notes
  • Photo — gallery picker, uploaded to Firebase Storage (persists across devices and after re-login)
  • Physical data: weight (kg) + height / stokmaat (cm) — used for calorie calculation
  • Co-riders — link multiple riders to one horse; stats tracked separately per rider
  • Horse detail screen — stats overview + ride list for that horse
  • Free: 1 horse · PRO: unlimited 🔒

8. Ride History

  • Full ride list — sorted newest first
  • Filter by horse — dropdown in app bar
  • Multi-select delete — tap trash bin icon → enter select mode → long-press or tap to select → confirm delete
  • Ride detail screen:
  • Full gait-coloured map trace
  • Stats: distance · duration · avg speed · max speed · elevation gain · total calories (rider + horse)
  • Gait bar (visual % walk/trot/gallop)
  • Weather at start + end of ride
  • Photos gallery (thumbnails → full-screen)
  • Export / Share menu:
    • 📄 PDF export — branded ride report (stats, map thumbnail, gait breakdown)
    • 🗺️ GPX export — valid GPX 1.1 XML, shareable with any GPS app
    • 🖼️ Social media card — branded PNG image with EquiTrail watermark + auto-generated hashtags (country-specific: NL/BE/DE/FR)
    • 🔗 Share GPX with friends — share file directly to contacts
    • 🌍 Share with community — posts route to community_trails (visible to all riders)
    • 🔗 Link share — share ride summary as text link
  • Free: 5 saved rides · PRO: unlimited 🔒

9. Cloud Sync & Backup

  • Ridesusers/{uid}/rides/{id} — auto-uploaded on save
  • Horsesusers/{uid}/horses/{id} — auto-uploaded on save/edit
  • Settingsusers/{uid}/settings/prefs — synced on every change
  • Profile photo → Firebase Storage avatars/{uid}/profile.jpg — URL in Firestore
  • Horse photos → Firebase Storage avatars/{uid}/horse_{id}.jpg
  • Ride photos → Firebase Storage photos/{uid}/{rideId}/{file}
  • syncFromCloud() on login — restores rides, horses, photos, settings
  • Clears local user data on sign-out (prevents cross-user contamination on shared devices)

10. Statistics & Analytics

Stats Screen

  • Summary cards: total rides · total km · average speed
  • Distance bar chart (fl_chart) — weekly / monthly / yearly selector, touchable bars
  • Gait pie chart — walk / trot / gallop %, touchable slices show exact %
  • Speed line chart — average speed trend over time
  • Horse filter — filter all charts to a specific horse
  • Same charts as Stats with time-axis trend
  • PDF export of full stats report
  • Compare with friend button (friend picker dialog)

Compare Rides Screen

  • Pick two rides side-by-side
  • Stats comparison table: distance · duration · avg speed · elevation · calories
  • Side-by-side gait bars
  • PDF export of comparison report

11. Gait Info — Strides Screen

  • Live gait card (shown only during active tracking) — current gait label + speed
  • Educational gait cards — Walk / Trot / Gallop with speed ranges and descriptions
  • Accessible from main menu

12. Profile & Account

  • Register (email + password + display name)
  • Login (email + password, or Google Sign-In)
  • Profile name — displayed publicly
  • Profile photo — gallery picker, uploaded to Firebase Storage (persists after logout + re-login)
  • Nickname — private alias shown only on leaderboard, not real name
  • Unique Vriend-ID — ET-XXXXXXXX format, copyable + shareable
  • PRO badge — ⭐ shown on profile and leaderboard when PRO
  • Special role badges displayed: Founder 🏛️ · Tester 🧪 · Ambassador 🤝 · Influencer 📣 · Sponsor 💎
  • Change password (email accounts)
  • Easter egg 1: 5 taps on profile header avatar → animated horse GIF
  • Easter egg 2: 5 taps on info tile → secret code dialog (enter HIPPISCH → 7-day PRO trial)

13. Social Feed

  • Global feed of all public rides, newest first
  • Feed post card: nickname · ride title · distance · duration · gait bar · horse name · photo thumbnails · relative time
  • Like a post (tap heart, count shown)
  • Tap post → author profile sheet: stats · badges · horse · most recent ride · Follow button
  • Report post: 3 unique reports → auto-hidden + Discord moderation webhook
  • Blocked users filtered out of feed automatically
  • Photo sharing opt-in in Settings > Sociaal & Privacy (default: on)

14. Friends & Social Connections

  • Search users by display name (Firestore prefix query)
  • Send friend request — notification created for recipient
  • Incoming request inbox — "Verzoeken" section with Accept / Decline buttons
  • Friends list — with online indicator (green dot) + last-seen time
  • Nudge 🏇 "Zin om samen te rijden?" — feature flag off, ready to enable
  • Block / Unblock users
  • Blocked users management screen

15. Nearby Riders Map

  • Real-time map showing active riders in ~25 km radius
  • Opt-in toggle — "Zichtbaar voor andere ruiters" (default: off)
  • Privacy: location rounded to ~1 km grid — never exact coordinates stored
  • Only published during active GPS tracking session
  • Tap marker → rider profile sheet (nickname, roles, last active time)
  • "Verbinden" button → sends friend request to that rider
  • Hint card shown when opted in but no riders found (explains active tracking requirement)

16. Achievements & Badges (35+ total)

Distance milestones: 1 km 🌱 · 10 km 🐴 · 50 km ⭐ · 100 km 🏅 · 500 km 🥇 · 1,000 km 🏆 · 5,000 km 💎

Time in saddle: 1 hour ⏱️ · 10 hours 🕐 · 50 hours 🕑 · 100 hours 🏇

Ride count: 1st ride 🔰 · 5 rides 📍 · 25 rides 🗺️ · 100 rides 🌍

Gait mastery: Walk Master 🚶 · Trot Champion 🏇 · Galloper ⚡

Weekly challenges: Week Warrior 🗓️ (5 rides in 7 days) · 100 km Week 💪

Exploration — Dutch coast & forest: Beach Rider 🏖️ (Dutch coast) · Forest Explorer 🌲 (Veluwe / Utrechtse Heuvelrug)

Exploration — All 12 Dutch provinces (individual badges): Drenthe · Flevoland · Friesland · Gelderland · Groningen · Limburg · Noord-Brabant · Noord-Holland · Overijssel · Utrecht · Zeeland · Zuid-Holland

Exploration — Province collector: Province Collector 🗺️ (ridden in 5+ provinces)

Exploration — International: Belgium 🇧🇪 · Germany 🇩🇪 · France 🇫🇷

Hidden / Mystery badges (shown as ??? until earned — condition secret): - Night Owl 🦉 — ride between 22:00–05:00 - Rain Dancer 🌧️ — ride in rain (detected from weather data or ride title) - Carousel Rider 🎠 — 50+ arena circles in training mode - Flying Dutchman ⚡ — single ride > 50 km - EquiTrail Veteran 🏆 — 500 km cumulative total

Special / admin-assigned: - Founder 🏛️ — registered before Dec 31, 2026 + installed production build - Tester 🧪 — used internal/beta build (permanent, kept even after production install) - Ambassador 🤝 — admin-assigned - Influencer 📣 — admin-assigned - Sponsor 💎 — admin-assigned


17. Challenges

  • Active challenges list with visual progress bars
  • Personal challenges — weekly distance / ride count targets
  • Club challenges — shared goals with club members
  • Challenge splash screen on first completion
  • Progress path visualisation — animated trail graphic

18. Leaderboard

  • Friends leaderboard (total km, sorted)
  • Regional leaderboard (Dutch province level)
  • National leaderboard (NL)
  • PRO badge displayed next to name ⭐
  • Opt-out option (Settings > privacy — hide from leaderboard)

19. Clubs & Groups

  • Create a club (name, description, public/private)
  • Join / Leave a club
  • Member list with roles
  • Club stats — combined km, ride count, member count
  • Club challenges — shared distance or ride-count goals
  • Club activity feed — recent member rides

20. Share Card & Export

  • Ride share card — branded PNG image:
  • EquiTrail logo watermark
  • Ride title, distance, duration, gait bar
  • Auto-generated caption + hashtags (country-specific: NL/BE/DE/FR)
  • Shared via OS share sheet
  • Achievement share card — same format with badge + title
  • GPX export — valid GPX 1.1 XML, all track points with lat/lng/alt/time
  • PDF export — printable ride report:
  • Stats table, gait breakdown, ride title, horse name, EquiTrail branding

21. Community Tips Screen

  • 5 daily riding tips: fire safety · pacing · health & safety · hydration · temperature management
  • Coming-soon banner for full community features

22. Country Content (NL / DE / FR / GB)

  • Per-country GPX route sources (e.g. NL: Ruiterlabel, Buitenrijden.nl)
  • Per-country POI tips for riders
  • Per-country equestrian organisations list

23. Gamification & Engagement

  • Streak chip — consecutive days ridden, shown on profile
  • FOMO banners — rotating peer-pressure messages on home + feed
  • Referral system:
  • Personal EQUI-XXXXXX code (generated from UID)
  • Apply code at registration → counted for referrer
  • Every 3 referrals = 1 month PRO free for referrer
  • Referral leaderboard (top referrers visible)
  • "Invite friends" card — inserted every 4 posts in the feed

24. Navigation Bar

  • 3–5 configurable tabs (Home + Settings always present)
  • Toggle visibility of: Track · Horses · History · Social
  • Reorder tabs (up/down arrows)
  • Disabled tabs accessible via Settings > Meer menu's (shown as direct links)
  • Icon scaling — icons auto-shrink when 5 tabs shown

25. Settings

Section Settings
Profiel Name · Photo · Nickname · Vriend-ID
Uiterlijk Dark / Light / System theme · Language (NL/EN/FR/DE)
Eenheden km / miles · °C / °F
Gewicht Rider weight (kg) for calorie calculation
Opnamemodus Primary tracking mode (GPS / Arena / Jumping)
Navigatiebalk Choose 3–5 tabs + order · Disabled menus accessible
Sociaal & Privacy Photo sharing in feed (on/off) · Location visibility for nearby riders
Community Discord invite link
Discover Achievements link · Challenges link · FAQ link · Stats link
Veiligheid Safety screen · Device info
Account Sign out
Juridisch Privacy policy · Terms · GDPR data deletion
Geblokkeerde gebruikers Manage block list
[debug] Test challenge toggle
[easter egg] Secret code dialog (5 taps on info tile)

26. Safety Screen

  • Emergency stop UI (no real alert dispatch yet — #312 planned)
  • Emergency contacts UI (shows "binnenkort" — #312 planned)
  • Location sharing indication
  • Battery overlay displayed on tracking screen (live % + charging state)

27. FAQ Screen

  • Gait & Strides section — Walk/Trot/Gallop speed ranges + descriptions
  • General questions — common app usage questions

  • equitrail://navigate → opens Navigation screen
  • equitrail://route?id=X&name=Y → opens Navigation with specific route pre-loaded
  • equitrail://achievements → opens Achievements screen
  • Handles both: app launched via link + link received while running

29. App Update (Google Play)

  • Auto-checks Play Store for updates on each launch
  • Custom update dialog (not Android default) with styled prompt
  • If dismissed: nags again every 1 hour
  • Graceful failure if not running from Play Store (emulator / sideload)

30. Pending Route (Website → App)

  • Website can write a route to users/{uid}/pending_routes in Firestore
  • On next app open after login: banner appears with route name
  • One-tap to navigate with that route loaded
  • Route doc deleted immediately after pickup (no duplicate banners)

31. PRO Subscription

Feature Free 🆓 PRO 🔒
Horses 1 Unlimited
Saved rides (app) 5 Unlimited
PRO badge (⭐ profile + leaderboard)
All tracking modes (GPS/Arena/Jumping)
Cloud sync + backup
Feed, social, achievements

Pricing: - Via website (recommended): €10/mo · €90/yr · 0% commission - Via Google Play: €11.99/mo · €109.99/yr · 15% Play fee - Via App Store: €11.99/mo · €109.99/yr · 15% Apple fee

Trial: Secret code HIPPISCH → 7-day PRO (easter egg: 5 taps on ⓘ in profile)


32. Referral System

  • Every user gets a unique EQUI-XXXXXX code on first login
  • Enter referral code at registration → attributes install to referrer
  • Firestore: referrals/{uid} tracks count + referred UIDs
  • 3 referrals = 1 month PRO free (applied to referrer)
  • Referral leaderboard — top referrers shown (anonymised)

33. Security & Integrity

  • Device ID collection (anonymised, used for fraud prevention)
  • GDPR screen — data deletion request · data export request
  • All cloud data in europe-west4 (Amsterdam) — EU residency
  • Ride data obfuscated in release builds (split debug symbols)
  • Firestore security rules — user data isolated by UID, admin role gated

34. Localisation (4 languages)

All UI strings translated in NL / EN / FR / DE: - App navigation, labels, buttons, error messages - Gait descriptions, FAQ, tips - Share card captions + hashtags country-specific


35. Discord Bot (EquiTrail#3566)

Onboarding flow: 1. Join server → only #welcome, #rules, #get-your-role visible 2. React ✅ in #rules → bot DMs step 2 3. Type ET-XXXXXXXX in #get-your-role → bot verifies + assigns 🐴 Ruiter role 4. Language selector DM → assigns NL/EN/DE/FR role → unlocks channels

RouteHelper (merged into main bot): - Drop .gpx in #share-routes → bot parses, stores, replies with stats - /route [regio] · /gpx [naam] (DMs file) · /routekaart [naam]

Roles managed: 🐴 Ruiter · ⭐ PRO · 🌟 Founder · 🤝 Ambassador · 📣 Influencer · 💎 Sponsor · 🏅 Tester · 🇳🇱🇬🇧🇩🇪🇫🇷 language roles


36. Website (equitrail.horse)

Page URL Status
Homepage (NL/EN/DE/FR) /
PRO pricing /pro
Privacy policy /privacy
Terms /terms
Partnership /partnership
Rider directory /riders
History /history
Delete account /delete-account
Routes hub (NL provinces + country flags) /routes/
🇳🇱 12 Dutch province pages /routes/nederland/{prov}.html ✅ all 12
🇧🇪 10 Belgian province pages /routes/belgie/{prov}.html ✅ all 10
🇩🇪 16 German Bundesländer /routes/duitsland/{staat}.html ✅ all 16
🇫🇷 13 French region pages /routes/frankrijk/{region}.html ✅ all 13
Beta tester survey /beta/ ✅ tester-gated
Beta admin dashboard /beta/admin.html ✅ admin-gated
Admin panel /admin.html

Each region page has: Leaflet OSM map · fitBounds to province · province boundary highlight + greyed surroundings · Overpass API horse trail polylines · real Firestore ride data · full SEO (canonical, hreflang nl/en/de/fr, schema.org BreadcrumbList + CollectionPage + SportsActivityLocation + GeoShape) · breadcrumbs · accessibility aria labels · province interlinking · other-country flags · download CTA

Generator: scripts/generate_region_pages.py — run to regenerate all 56 pages


37. Support Portal (support.equitrail.horse)

  • Support ticket creation — no login required
  • Ticket confirmation email via Microsoft Graph API (Office 365 shared mailbox support@equitrail.horse)
  • "My tickets" view — login to see own tickets (query by email, no userId needed)
  • Admin can read + update all tickets (isAdmin flag)
  • Support daemon (Oracle server, equitrail-support systemd service):
  • Polls Firestore every 2 min for new tickets needing confirmation
  • Polls Office 365 inbox every 15 min for email replies, matches [TICKET-ID] in subject

38. Beta Tester Survey (equitrail.horse/beta/)

  • Tester-gated — checks isTestUser == true in Firestore after login
  • 7-section survey: profile · onboarding · GPS · horses/social · UI/UX · bugs · overall
  • Auto-save to localStorage (resume banner on next visit)
  • Submit via Firestore REST + ID token auth
  • Admin dashboard (/beta/admin.html):
  • List view + aggregated view + backlog generator
  • KB overlap detection
  • Feedback pattern → auto-generated backlog items

39. Admin macOS App (equitrail-admin)

  • Login via Firebase Auth REST (no native SDK — works without Apple Developer team ID)
  • Token auto-refresh in SharedPreferences (UserDefaults)
  • Screens: Users overview (free/PRO/platform split) · Community trails map with Dutch province sidebar · Dashboard stats
  • Admin identification via users/{uid}.isAdmin == true in Firestore

40. Build System & Infrastructure

  • Flutter 3.44 / Dart 3.12 · Android + iOS parity
  • Build track constant (AppConstants.buildTrack):
  • 'internal' = current (sets isTestUser=true → Tester badge)
  • 'production' = first public release (sets hasProductionInstall=true → Founder badge)
  • Obfuscated release AAB + split debug symbols (symbols/)
  • Cloud: all in europe-west4 Amsterdam (NEVER us-central1)
  • Routing: GraphHopper on Oracle Cloud (via Tailscale 100.126.14.49)
  • Discord bot: Oracle Cloud systemd user service
  • Website: Plesk FTP deploy (scripts/deploy_website.sh)
  • Backup: scripts/backup_to_server.sh → Oracle ~/equitrail-backup/


🔜 PLANNED — Not yet in the app

Payments & Revenue

  • #83 Stripe / iDEAL website payments
  • #84 Google Play Billing
  • #85 App Store IAP
  • #138 Mollie integration
  • #286 Admin premium code generator (trackable codes, usage limits)
  • #287–288 Full referral tier system (3/5/25/50/100 referrals → Supporter/Ambassador/Elite/Sponsor Partner)
  • #102 Horse PRO shared subscription (co-rider model)

iOS & Apple

  • Apple Developer enrollment (pending)
  • TestFlight + App Store submission
  • Apple Small Business Programme

Safety (real alerting — UI exists, dispatch not wired)

  • #312 No-movement auto-alert: 5 min standstill during active session → 30-sec countdown → SMS + GPS to emergency contacts
  • #313 Fall detection: accelerometer G-spike → near-zero motion → alert flow (same as #312)
  • Actual SMS/email dispatch via Cloud Function

Training Expansion

  • #293 Arena dressage letters overlay (A/B/C/E/F/G/H/K/M/X + 20×40m layout)
  • #293 Dutch proef sequences (Oefenklasse B, L1, L2) with guided movements
  • #293 Non-circle patterns: serpentine · diagonal · shoulder-in · half-pass
  • #294 Jump height: obstacle height entry before session + clearance per jump
  • #309 Endurance mode: FEI rules · vet check markers · pace zones · TREC / CTR
  • #314 Posture coach (V1: GPS turn asymmetry → V2: accelerometer lean → V3: watch wrist IMU)

Social & Friends

  • #22 FCM push notifications (friend requests, likes, club events)
  • #308 "Send to app" deep link from website route pages (equitrail://route?...)
  • #311 Public rider directory (opt-in, nickname-only, filter by province)
  • #89 GPX sharing directly from social feed
  • #90 Club group chat

Horse & Stats

  • #305 Horse stats dashboard: km · gait distribution · calories · jumps · arena metrics per horse
  • #306 Clearer horse selection UX at ride start (prominent picker)
  • #303 Horse breed autocomplete (200+ breeds, NL/EN/DE/FR, fuzzy match)

Referral & Ambassador

  • #287–290 Full tier: Supporter / Ambassador / Elite Ambassador / Sponsor Partner
  • #289 Ambassador dashboard (installs, conversions, commission, rank)
  • #307 Ambassador page on website

Admin & Feature Flags

  • #301 Remote Firestore feature flag control (Free/PRO/Hidden per feature, admin toggle without app update)
  • #302 Profile photo in leaderboard + ranking screens
  • Admin macOS app Google Sign-In (needs Apple Developer team ID)

Website & Routes

  • #304 External route importer (OSM/ODbL data, Cloud Function, weekly sync)
  • #296 Feed click → ride detail slide-up (route trace + photos)
  • #297 Feed photo thumbnails in feed card
  • #292 Trailer-friendly parking search in navigation

Infrastructure & Monitoring

  • #242 Brevo newsletter setup (GDPR-compliant, region segmentation)
  • #276 Firebase spend alerts + GCP budget anomaly detection
  • Firestore daily export → GCS backup
  • Keystore → 1Password offline backup
  • Import Uptime Kuma monitors (192.168.1.111:3001)
  • #106 Full automated test suite run

Wearables & Devices

  • #310 Galaxy Watch companion (code in repo at android/wearable/, feature flag off)
  • #310 Garmin Connect IQ (large equestrian user base)
  • #310 Fitbit / Google Pixel Watch
  • #20 Apple Watch

On-Device Bugs (needs device testing)

  • #298 Grey screen on Track after PRO unlock — likely proServiceProvider rebuild cascade
  • #300 Friend name overflow in search results — maxLines/ellipsis fix