v9.3.0
Current
Admin Tools & Chapter Directory
- New: portal Admin Tools page — accessible via 'Home ▾' for admins; code generator moved here
- New: Chapter Directory — GASKET chapter officers and external chapters with call/email buttons
- New: collapsible accordion directory with live search
- New: external chapter contacts managed by super/national/regional admins at Organisation → Directory
v9.2.0
Portal Notification Inbox
- New: Inbox in the portal (bell icon) — every push announcement lands here for all chapter members
- New: unread badge on bell icon, clears when inbox is opened
- New: push member picker on ride announce page — select specific recipients
- New: push notification log at Comms → Message Logs → Push
v9.1.0
Push Notification Controls
- New: messaging page defaults to push channel; member picker lets you select specific recipients
- New: CC super admins picker — choose individuals rather than all-or-nothing
- New: 🔔 bell icon on members list for push-enabled riders
- Improved: ride announce defaults to push; custom push title and body fields
v9.0.0
Comms 2.0: Push Notifications
- New: members can opt in to push notifications from the portal dashboard
- New: ride announcements can be sent as push notifications alongside or instead of WhatsApp — free, instant, no rate limits
- New: Discord voice comms page shows a 'Join Discord Server' button for first-time Discord users
- Fix: portal service worker now registers correctly, enabling push opt-in and PWA features
v8.7.1
Admin Code Login Fix
- Fix: admin-generated portal codes now work on the standard login page — member enters phone then uses the admin code instead of WhatsApp
v8.7.0
Admin Portal Code Login
- New: admins can generate a 6-digit login code for any member from their rider profile or from the portal Member Login Help card
- New: cascading Region → Chapter → Member selector for super admins on the portal
- New: members with no WhatsApp can log in using an admin-generated code
v8.6.4
Voice Comms Hotfix
- Fix: portal dashboard now shows 'Join Today's Ride Comms' button for rides with live status
v8.6.3
Voice Comms Fixes
- Fix: Leave Voice button — disconnect from all Discord channels directly from GASKET
- Fix: Voice comms page keeps screen awake — no more screen timeout mid-ride
v8.6.2
Analytics Fixes
- Fix: Unique Riders tile excludes visitors from other chapters and resigned members
- Fix: Start Point Preferences counts all non-cancelled signups, not just attended
- Fix: Inactive riders list now shows names with links to member profiles
v8.6.1
Email Deliverability Fix
- Fix: outbound emails now include plain text alternative — improves deliverability to Apple/iCloud
- Fix: From header now shows 'GASKET' as display name
v8.6.0
Member Promotion & Portal Leaderboard
- New: promote any member to admin directly from their profile — role selector, auto-generated username, setup link sent via WhatsApp
- New: remove admin access from member profile — permanently deletes linked admin account
- New: 'Most Rides This Year' leaderboard on portal dashboard — top 5 by attended rides, per-chapter opt-in
- New: portal leaderboard shows this year's count and all-time total per rider
- Improved: analytics Top Riders now includes apologies column and ranks by rides attended
- Improved: Unique Riders tile counts distinct riders who have signed up, not raw member records
v8.5.0
Discord Voice Comms 2.0
- New: voice comms page rebuilt — setup helper walks new riders through Discord account creation
- New: one-tap channel switching between General Ride and Management without leaving GASKET
- New: page auto-detects when you join or leave Discord voice — no manual refresh
- New: member chips show road names, not Discord display names
- New: /portal/voice/today fixed URL for WhatsApp messages and QR codes
- New: Discord bot maintains live voice state cache via WebSocket — member lists now accurate
- Fix: Open Mic only — PTT mode removed from ride-day voice page
- Fix: portal dashboard comms button only shows when Discord channels are set up
v8.4.4
Portal Login Fixes
- Fix: portal magic codes now reach riders whose phone numbers were stored with spaces or dashes
- Fix: portal login lookup strips formatting from stored numbers before comparing — prevents silent mismatches
- Fix: failed phone lookups now written to audit log so they're traceable
- Fix: WhatsApp send failures due to unrecognisable phone format now logged to database instead of disappearing silently
- Fix: Railway build — removed nixpacks.toml and comms-2.0 dependencies that were breaking the build environment
v8.4.3
Voice Channel Fixes
- Fix: voice channel button only appears on the correct chapter and ride day
- Fix: voice channel uses the correct ride room and rider name
- Fix: member profile status bar now shows current chapter role correctly
- Fix: missing trusted_device_token migration applied
v8.4.2
Discord Voice Comms
- Portal voice button now launches Discord directly — tap to open the ride channel in the app
- Discord deep link replaces LiveKit for audio on ride day (falls back to LiveKit if no Discord channel set up)
- Management channel TTS announcements — bot announces when riders join or leave the ride leaders channel by road name
- Riders can add their Discord username in portal profile settings for name matching
- Admins can add their Discord username in their admin profile
- WhatsApp signup confirmations no longer include a voice link — portal is now the entry point for ride comms
v8.4.1
Portal Login & WhatsApp Log Fixes
- Fix: portal magic code messages now correctly linked to the member in WhatsApp logs (previously logged with no rider ID, making them invisible when filtering by member)
- WhatsApp logs: added phone number search so you can look up messages by number directly
v8.4.0
Ride Day Voice Comms
- Built-in WebRTC voice — General Chat and Ride Leaders channels, no app needed
- PTT (default) and Open Mic modes with persistent preference per device
- Portal dashboard shows Join Today's Ride Comms button on ride day
- Any chapter member can join, not just signups
- Participant chips + speaking indicator + join chime
- Voice enabled per chapter in Chapter Settings
- Portal activity now in audit log
- Fix: reliability stat excludes apologies; linked ride signups shown correctly
- Fix: GAS numbers no longer lost on deploy for same-named members across chapters
v8.3.0
Membership Numbers, Pipeline, Voting & Member Portal
- GAS-XXXXX membership numbers — sequential from 26, numbers 1–25 reserved, retired numbers never reused
- Prospect pipeline — journey tracking from prospect date through trial rides, vote, patching and branding
- Trial ride threshold configurable per chapter; count shown on profile and members list
- Blind chapter vote — auto-triggers at threshold, 66% to pass, 7-day deadline, day-3 reminders
- Resigned members: number archived as retired, cleared for fresh assignment on re-join
- Honorary members: subs shown as Exempt
- Member Portal at /portal — mobile-first, WhatsApp magic code login, trusted device cookie
- Portal: dashboard, ride history, membership journey, profile editing with postcode lookup
- Member import/export overhauled — now includes membership status, GAS number, joined date, address, emergency contact, and prospect pipeline dates
- Export a blank member list to get a pre-headed CSV template for bulk data entry
- Vote outcome emails use branded HTML template; prospects not notified of result either way
- Fix: admin sessions now persist correctly across browser restarts
- Fix: PWA cache updated — iOS/Android users on v8.2.x now receive latest version automatically
- Settings: Run Nightly Cron button for super admins; Members list: unassigned GAS number counter badge
v8.2.6
WhatsApp Login + Trusted Browser
- Super admins now receive magic code via WhatsApp as well as email
- Trusted browser cookie — skips magic code on return visits for 30 days
v8.2.5
Fix: Signup Error on Cross-Chapter Rides
- Fix: UnboundLocalError when a rider signed up for a ride from a different chapter
v8.2.4
Fix: PWA Cache + Cron Ride Status
- Fix: Service worker caching stale admin CSS causing expanded menus after deploy
- Fix: Nightly cron now correctly auto-completes past rides
v8.2.3
Fix: Session Persistence
- Fix: Admin sessions now persist across browser restarts and multiple devices
v8.2.2
Fix: Calendar + Dietary Requirements
- Fix: Multi-day calendar events displaying incorrectly
- Fix: Dietary requirements field incorrectly marked as required on signup form
v8.2.1
Fix: Multi-Device Login
- Fix: Logging in on a second device no longer invalidates the first device's session
v8.2.0
Audit Log + Navigation
- Every significant action recorded — who, what, when, and from where
- Covers logins, failed attempts, ride/member/signup changes, exports, PDF downloads, bulk WhatsApp sends
- Audit Log page under Settings (super admin) — filterable by action, actor, date; CSV export
- Sidebar reorganised into clearer sections with accordion behaviour
v8.1.0
Magic Code Login + Session Security
- Passwords replaced with 6-digit magic codes sent by email — nothing to remember or lose
- Session expiry: admins automatically logged out after a configurable period (default 7 days)
- Force Re-login button in Settings — instantly ends all other admin sessions
- Shadow accounts: test role configurations before assigning to real admins
- Rollback switch: MAGIC_CODE_LOGIN=false reverts to password login if needed
- Fix: messaging recipient filter consistent across WhatsApp and email — super admins no longer leak into chapter sends
- New: CC super admins checkbox on messaging page for explicit opt-in
v8.0.0
Membership System + Ride Management Voice
- New: National roles — Vice Chairman, Director, National Secretary and more
- New: Org structure pages — location matrix and national role/regional access views
- New: National roles can be restricted to specific regions
- New: Each ride auto-creates a management voice channel alongside the general one
- New: 🎙️★ button on attendance page sends management channel link one rider at a time
- Confirmation prompt recommends keeping management channel to 5 or fewer riders
v7.2.5
Bulk Tracking & Voice Links
- New: Send Tracking to All button on attendance page — one tap sends tracking link to every rider with a phone number
- New: Send Voice to All button on attendance page — same for voice links
- Both buttons confirm before sending and report how many were sent
v7.2.4
Shorter WhatsApp Links
- All links in WhatsApp messages now use compact short paths (/c/, /u/, /v/, /r/, /t/, /x/, /admin/p/)
- Unsubscribe tokens shortened from 43 characters to 11
- Previously sent links still work
v7.2.3
Manual Member Merge
- New: Manual Merge section on the Merge Members page — merge any two profiles regardless of phone number or name
- Useful for walk-ups added without contact details, or profiles with different name spellings
- Type-to-filter narrows both lists simultaneously to find members quickly
v7.2.2
Leaderboard Fix
- Fix: Top Riders leaderboard on ride view now only counts attended rides (not just signups)
- Fix: Leaderboard now scoped to the same chapter as the ride — no cross-chapter inflation
v7.2.1
Two-Step Unsubscribe
- Fix: Unsubscribe link now shows a confirmation page before opting out — prevents accidental opt-outs from mis-clicks or email scanners
v7.2.0
Calendar Subscriptions
- New: Chapter calendar subscription feed — riders subscribe once, new rides appear automatically
- New: Subscribe button on chapter page with webcal:// link, copy URL, and per-platform instructions
- New: Calendar feed toggle in Chapter Settings alongside tracking and voice flags
v7.1.0
Split Start Routes & UX Improvements
- New: Split start routes — plan separate approach routes from each start point with two GPX files
- New: Route Planner M/2/A pin leg selector — tag each waypoint as Main only, Secondary only, or All
- New: Collapsible sidebar — shrink to icon-only strip for more screen space
- Fix: Route Planner distances now in miles; split mode shows separate distance and time per start
- Fix: Public ride detail map draws correct coloured segments for split routes
v7.0.1
Polish & Fixes
- Fix: Attendance page now shows riders from linked chapters
- Fix: Chapter rides PDF — ride title column wraps correctly
- Enhancement: Inline status dropdown on All Rides page (rides.edit permission)
- Enhancement: Sidebar scroll position persists across page navigation
- Enhancement: Copy to Clipboard button on ride announce page
- Enhancement: Information only flag on rides — hides signup form publicly
- Automation: Duplicate member detection — WhatsApp alert sent to chapter admins when two rider profiles share the same phone number
v7.0.0
Ride Day Safety: Live Tracking + Voice
- New: Live GPS tracking — riders appear as named pins on a real-time map
- New: Ride voice channel — always-on group audio over 4G/5G, no range limit
- New: Per-chapter feature flags — enable tracking and/or voice per chapter
- New: Permission controls — assign access via role templates (rides.use_tracking / rides.use_voice)
- New: Guest Links button on attendance page — send tracking + voice links to walk-up guests
- Linked rides: riders signing up via a linked chapter automatically receive voice and tracking links
- Voice link included in signup confirmation WhatsApp (if ride has a voice channel)
- Voice channel auto-created on ride publish, auto-deleted on completion
v6.6.4
Hotfix: Route Planner — Edit Dropdown
- Fix: 'Edit Existing Route' now shows all upcoming rides, not just ones with saved routes
- Fix: Past rides no longer appear in the dropdown
- Rides with an existing route are marked with ★
v6.6.3
Hotfix: Route Planner
- Fix: Loading a second route after clearing all no longer fails
- Fix: 'No pins' message no longer disappears after switching routes
v6.6.2
Hotfix: Route Planner Load
- Fix: Edit Existing Route now shows all rides with waypoints, not just upcoming ones
- Fix: Rides with no date no longer crash the route planner page
v6.6.1
Route Planner: Edit Existing Routes
- Load an existing ride's route into the Route Planner for editing
- Start points, waypoints and route name all restored on load
- Save buttons change to 'Update Ride' / 'Save to New Ride' when editing
- Updating replaces the existing waypoints directly
v6.6.0
Route Planner
- New: Route Planner for Road Captains (Rides → Route Planner)
- Pick Main and Secondary start points from saved club locations
- Drop waypoint pins on the map — route road-snaps automatically
- Place names filled in automatically via reverse geocoding
- Drag to reorder, undo, clear — live distance and time stats
- Download GPX for sat-navs and GPS devices
- Save to an existing ride or create a new ride pre-filled with start points
v6.5.3
Bug Fixes + Photo Upload UX
- Fix: Feedback form 500 error on submission (WhatsApp rate limit timeout)
- Fix: Analytics totals now include Events, not just Rides
- Fix: Completed Events count was capped at 20 — now accurate
- Upload progress overlay shown while photos are uploading
- Approval notice after upload — users told photos need admin approval before going live
v6.5.2
Daily Digest Fix
- Fix: Apologies were labelled as 'Cancelled' in daily digest emails
- Fix: Multi-chapter admins now receive one consolidated digest instead of a separate email per chapter
- Fix: Signups and apologies were missing from single-chapter digest emails
- Fix: App updates section now appears in both single and multi-chapter digests
v6.5.1
Edit Signup + UX Improvements
- Action buttons moved to first column on all admin tables
- New: Edit Signup — update pillion, guest, bike, dietary, contact without removing rider
- Fix: Cancellation page 500 error for phone-number cancellation flow
v6.5.0
Role & Permission Improvements
- New 'Ride Creator' role template for VPs, Secretaries and ride planners
- Waypoints now correctly require rides.edit permission
- Start points now correctly require chapter.manage_start_points permission
- Announcement summary only sent to the admin who triggered it
- Linking a ride automatically links the other ride back
v6.4.0
Nightly Cron + Auto-Complete + Deploy Digest
- Rides/events auto-complete at midnight after their date
- Badge awards fire automatically on auto-completion
- Single nightly cron replaces separate digest triggers
- Daily/weekly digest emails include recent app updates
- Attendance page shows completed rides from last 7 days
- Banner on completed rides confirms attendance still editable
v6.3.1
Hotfix: Multiple Rides/Events on Same Day
- Same-chapter date clash is now a warning, not a block
- Multiple rides or events on the same day now allowed
- Inline date checker shows amber warning instead of red error
v6.3.0
Analytics: Rides vs Events + Feedback Fix
- Ride stats now exclude events (attendance, leaderboard, rides per month)
- Events shown as a separate count on all analytics views
- Chapter analytics shows completed events table with attendance
- Region/All-Regions comparison tables include Events column
- Fix: feedback form no longer crashes if WhatsApp notification fails
v6.2.0
Apologies System + Attendance Improvements
- Riders can register apologies on any ride page
- Cancelling a signup automatically registers apologies
- Last-minute apology button on attendance page (reversible)
- Apologies shown separately from no-shows in analytics
- Attendance start dropdown now includes waypoints
- Rider profiles show apology count separately from no-shows
v6.1.0
GDPR Compliance + Cancellation Link Fix
- Lodge numbers removed from public sign-up lists
- Consent notice and checkbox for new riders on sign-up form
- Returning riders with consent on file skip the checkbox
- Admin can hide individual sign-ups from the public list
- New Privacy Policy page at /privacy with footer link
- Privacy contact email field in Site Settings
- Fix: requesting cancellation twice no longer breaks the first link
v6.0.0
Email System Overhaul + Chapter Admin Permissions
- Daily & weekly email digests with chapter activity
- Digest management page with manual trigger
- Deploy notifications via email with preview/edit
- Send to Super Admins, Chapter Admins, or Members
- Message Logs: WhatsApp and Email tabs combined
- Chapter admins can edit their own chapter settings
- President role protected - super admin only
- App feedback auto-creates GitHub issues
- Admin list shows phone and email columns
v5.6.0
Notification Grid + Ride Attachments
- Super admin notification grid for managing all admin preferences
- Drill-down by region → chapter → admin
- Attach files (PDF, CSV, images) and links to rides
- Public/Admin-only visibility toggle per attachment
- Paperclip icon on rides list shows attachment count
v5.5.0
Admin Enhancements
- Change rider's start point from ride view (dropdown)
- Change start point on attendance page too
- Call riders directly from attendance page (green phone button)
v5.4.2
Bug Fixes
- Manual deploy notification button in WhatsApp logs
- Linked ride PDFs now show all riders from both chapters
- Google Maps route includes secondary start point
- Google Maps uses destination postcode for accuracy
- Fixed weather showing for 'None' in Italy bug
v5.4.1
Duplicate Ride Fix
- Duplicating a ride now copies all waypoints
- Destination postcode and coordinates now copied
v5.4.0
GPX Import for Ride Routes
- Import waypoints from GPX files directly into rides
- Preview on map and assign point roles before import
- Inline waypoint editing with auto-save
- Join point checkbox, defaults to disabled
v5.3.7
GPX & Route Fixes
- Fixed start point name matching for GPX generation
- Secondary start point now shows in Route list
- Both start points included in GPX and map route
- Route calculation includes both starts before waypoints
v5.3.5
Destination & Bug Fixes
- Fixed: {name} and {road_name} return different values
- Destination shown on rides list and PDFs
- Destination included in GPX and route maps
- PDF download button restored on chapter page
v5.3.3
WhatsApp Log Attribution
- WhatsApp logs now show which admin sent each message
- Announcements tracked to the admin who initiated them
- System messages still show as 'System'
v5.3.2
Secondary Start Point Fix
- Secondary start point now included in GPX downloads
- Secondary start point now visible on route maps
- Route line connects through secondary start to waypoints
v5.3.1
Bug Fixes & UX Improvements
- Fixed duplicate signups showing on linked rides
- Added duplicate prevention when same rider signs up twice
- Signup timestamps now visible on admin ride view
- Clickable rider names link to profile pages
- Copy Link button on ride pages for easy sharing
v5.3.0
App Feedback
- New feedback form for bugs, features, and general feedback
- Feedback link in footer next to User Guide
- Super admin panel for managing feedback
- Notes history with timestamps and user attribution
- WhatsApp notifications for new feedback
- Shop tab only visible when chapter has active order window
v5.2.1
Deploy Notification Fix
- Fixed deploy notifications not reaching all admins
v5.2.0
Hierarchical Analytics
- New drill-down analytics: All Regions > Region > Chapter > Ride
- Region admin access for analytics visibility
- Dynamic leaderboards at every level
- CSV exports scoped to current view
- Clickable rows to navigate down the hierarchy
- Breadcrumb navigation to go back up
v5.1.5
Deployment Notification Test
- Testing deployment notifications after quiet hours fix
v5.1.4
PWA Navigation
- Floating home button appears when app is installed on phone
- Always takes you directly to home/dashboard
- Fixes navigation issues when viewing PDFs in PWA mode
v5.1.3
Hotfix: Admin Role Display
- Admin list shows actual assigned roles instead of generic 'Chapter Admin'
- Legacy admins (pre-RBAC) show 'Legacy Access' badge
- Admins with no roles show 'No Access' badge
v5.1.2
Admin List Filtering
- Instant search-as-you-type on all major admin lists
- Filter Rides by title, destination, and status
- Filter Members by name, bike, and phone
- Filter Chapters by name, slug, and region
- Filter Admins by username, role, and status
- Filter Start Points by name, postcode, and chapter
v5.1.1
Personal Notification Preferences
- New 'My Notifications' page for personal preferences
- Each admin chooses which notifications they receive
- Super admins can disable deployment alerts, signups, etc.
- Chapter admins see only their role-relevant notifications
- Updated Admin & Rider Manuals (Revision 2)
v5.1.0
Self-Service Cancellations & Notification Routing
- Riders can cancel signups via WhatsApp verification link
- New 'Notifications' settings page for routing config
- Control which roles receive signup, cancellation, and order alerts
- Permission checks enforced on all admin routes
- Friendly 403 error page explains missing permissions
v5.0.0
Role-Based Access Control
- 5 default role templates: Chapter Admin, Road Captain, Shop Manager, Social Media Manager, Events Coordinator
- Assign multiple roles per admin per chapter
- 28 granular permissions across all features
- Create custom roles with specific permissions
- New 'Roles' management in Settings
- Backward compatible with existing admins
v4.8.0
Ad-hoc Messaging
- New 'Send Message' feature in Settings
- Personalization placeholders: {name}, {road_name}, {chapter}
- Recipients: Chapter Members, Chapter Admins, or All Admins
- Respects quiet hours and opt-out preferences
- Opt-out status visible on Members list and profiles
- Minor bug fixes
v4.7.6
Hotfix: Quiet Hours
- Fixed race condition causing duplicate message sends
- Queue processing now uses locking to prevent duplicates
v4.7.5
Quiet Hours Fix
- Fixed timezone bug causing messages to send during quiet hours
- Notifications now correctly queue until quiet hours end
v4.7.4
User Guides & Stats Fix
- Downloadable Admin Guide and Rider Guide
- Chapter Attendance now includes walk-ups
- Renamed Attendance Rate to Signup Reliability
v4.7.3
Merge Duplicate Members
- Merge duplicate member profiles
- Auto-detects duplicates by matching phone numbers
- Transfers all signups, orders and photo tags
v4.7.2
New Logo
- Updated app icon and favicon with new GASKET logo
v4.7.1
Analytics Improvements
- Fixed attendance rate to only count completed rides
- Added chapter participation stat to rider profiles
- Per-ride analytics drill-down
- Clickable walkup/no-show stats with details
- CSV exports for analytics data
- Chapter comparisons (super admin)
v4.7.0
Gallery Improvements
- Unified photo approvals page (ride + gallery photos)
- Add ride photos to gallery without duplication
- Gallery section in sidebar for all admins
- Pending photo count badge in nav
v4.6.2
Hotfix
- Fix photo upload opening camera instead of file picker
v4.6.1
Bug Fixes
- Walk-up form now autocompletes for existing members
- Photo uploads: auto-resize large images (under 2MB)
- Photo uploads: take photo directly from camera (mobile)
- Better upload error messages when photos fail
v4.6.0
Notification Quiet Hours
- Configure quiet hours per notification type
- Deploy, badge, signup alerts respect quiet hours
- Queue notifications for later or skip entirely
- View and manage queued notifications
- Settings > Quiet Hours (super admin)
v4.5.0
Admin UX Improvements
- Region icons (emoji picker or custom image upload)
- Tree pickers for linked rides (Region → Chapter → Rides)
- Tree pickers for start points (Chapter → Start Points)
- Create new start points inline without page reload
- Search and filter in all pickers
v4.4.0
Regions
- Chapters grouped into regions
- Homepage shows regions first
- Single-chapter regions skip to rides
- Admin can manage regions
v4.3.0
Chapter Start Points
- Start points linked to chapters
- Ride forms filter by chapter
- Chapter admins can create start points
- Fix duplicate ride idea submissions
- Back button for iOS PWA users
v4.2.0
Photo Gallery & Admin Templates
- Multi-photo upload with drag & drop
- Upload progress bar and image preview
- Photo count icon on rides list
- Admin setup/reset messages now editable
- Deploy notifications sent to all admins
v4.1.1
Route Map Display
- Interactive route map with Leaflet/OpenStreetMap
- Destination postcode lookup
- Fix waypoint join selection in signup
- Start/waypoint/destination markers on map
v4.1.0
Route Waypoints & GPX
- Add waypoints with postcodes to rides
- View full route on Google Maps
- Download GPX files for GPS devices
- Riders can join mid-route at waypoints
v4.0.0
Progressive Web App
- Install as app on phone/tablet
- Offline support with service worker
- Faster loading with smart caching
- Add to home screen
v3.7.3
Release History Popup
- Clickable version number in footer/sidebar
- Full changelog from v1.0.0 to current
v3.7.2
Bot Protection
- Honeypot field on public forms
- Time-based check rejects instant submissions
- Zero friction for real users
v3.7.0
WhatsApp Message Log
- Message log for super admins
- Filter by chapter, type, or status
- View full message content
v3.6.0
Member Badges
- Badge system with configurable thresholds
- First Ride, Milestones, Reliable, Volunteer badges
- WhatsApp announcements when earned
v3.5.0
Mobile Admin
- Responsive admin tables
- Mobile-friendly sidebar
- Touch-optimised controls
v3.4.0
Walk-up Attendance
- Add riders at event who didn't pre-sign up
- Rider profile stats (attendance rate, no-shows)
- Glove-friendly admin interface
v3.3.0
Photo Gallery
- Upload ride photos (R2 storage)
- Admin moderation before going public
- Lightbox viewer with keyboard nav
v3.2.0
Weather Forecasts
- Weather on ride detail page
- Forecasts for both start points
- Up to 16 days ahead
v3.1.0
Shop Search
- Product search and category filters
- Real-time client-side filtering
v3.0.0
Merch Shop
- Product catalogue with images
- Order windows and checkout
- Order tracking and WhatsApp notifications
v2.1.0
Guest Riders & Events
- Guest rider checkbox on signups
- Multi-day events with calendar view
v2.0.0
Chapter Officers
- Flexible officer roles per chapter
- Visibility control for public display
v1.8.0
Attendance Register
- Mobile-friendly attendance page
- Signup confirmation banner
- Double-submit prevention
v1.7.0
Chapter Admin Roles
- Super admin and chapter admin roles
- Chapter-specific permissions
v1.6.0
Member Directory
- Member list with search and filter
- Ride ideas management
- Opt-out system for notifications
v1.5.0
Email Integration
- Gmail API and SendGrid support
- Admin creation via WhatsApp
v1.4.0
WhatsApp Notifications
- Signup confirmations via WhatsApp
- Cancellation notifications
- Admin notifications
v1.3.0
Rider Profiles
- Persistent rider profiles
- Auto-populate signup forms
- Rider leaderboard
v1.2.0
PDF Generation
- Chapter overview PDFs
- Individual ride PDFs
- Printable signup lists
v1.1.0
Multi-Chapter Support
- Durham and Northumbria chapters
- Chapter-specific rides
v1.0.0
Initial Release
- Ride management
- Public signup forms
- Admin authentication