Widows Sons MBA
Home Gallery Member Portal Admin Login
Home › Gallery

Photo Gallery

Upload Photos
Gallery photo

Coreys Installation

Gallery photo

March Chippy Run

1st Get together of the season

1st Get together of the season

McDonald's.... where else !!!

2 tagged

Gallery photo

Photo shoot with BMW

4 photos

GASKET Group Activity Signup Keeping Everyone Together

User Guide | Feedback | Privacy Policy

© 2026 Sean Lyons. All rights reserved.

Release History

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