Offline Sync

Overview

Offline Sync enables stewards, show secretaries, and officials to keep running the day — scratching entries, updating registration statuses, and entering dressage scores — even when internet connectivity is unavailable, such as in rural showgrounds or areas with unreliable mobile coverage. Changes made offline are automatically synchronised to Horsify when connectivity is restored.

The feature was delivered in two phases:

  • Phase 1: Background data worker pre-fetches event data for offline use
  • Phase 2: Conflict detection, entry caching, and a full scratch management flow

Who Uses This

  • Stewards & Ring Officials: Mark scratches and enter dressage scores at the ring without connectivity
  • Show Secretaries: Continue updating registration statuses during connectivity outages
  • Organisers: Ensure event operations are not disrupted by poor rural internet

How It Works

Phase 1 — Data Pre-Fetch

Before an event starts, Horsify's offline sync worker pre-downloads:

  • All accepted registrations and entries
  • Participant names and horse details
  • Class and session schedules
  • Scratch status for each entry

This data is stored locally in the browser so it remains available without a network connection.

Phase 2 — Offline Operations

When offline, users can:

Action Offline Support
View entry list ✅ Available
Scratch or withdraw an entry ✅ Queued for sync
Update a registration's status ✅ Queued for sync
Enter dressage scores ✅ Queued for sync
Check in a participant ❌ Not supported offline
Add a new entry ❌ Not supported offline
Take a new payment ❌ Requires connectivity

Conflict Detection

When connectivity is restored and changes are synced, the system detects conflicts — for example, if the same entry was scratched by two different stewards while offline. Conflicts are surfaced for manual resolution before being committed to the database.

Scratch Flow

The offline scratch flow mirrors the online experience:

  1. Locate the entry in the cached entry list
  2. Select Scratch and confirm
  3. The scratch is queued locally with a timestamp
  4. On reconnect, all queued scratches are synced and conflict-checked

Connectivity Indicator

The Horsify interface displays a connectivity banner when operating in offline mode, and a sync progress indicator when uploading queued changes.

Requirements

  • Modern browser with IndexedDB support (Chrome 90+, Firefox 88+, Safari 14+)
  • The event must have been opened or accessed while online to pre-cache data
  • Offline changes sync automatically when connectivity returns — no manual action required

Related Features