Offline Mode & Sync

How the sync status chip works and what happens offline.

MarkIT is built offline-first: attendance-taking keeps working with no internet connection, and syncs automatically once you’re back online.

The sync status chip

Visible at the top of every logged-in screen. It has three states:

  • Green, checkmark — “All synced — tap to force refresh” — everything is saved to the server. Tap it anytime to manually re-sync.
  • Orange, with a count — “X change(s) waiting to sync — tap to retry” — you have local changes not yet on the server (normal when offline, or right after a burst of swipes). Tap to retry immediately.
  • Blue, spinning — “Syncing…” — actively pushing/pulling right now.

What works offline

  • Taking attendance (swipe screen), editing/undoing records, settings changes, and reason codes all write to your device first and queue up to sync later. You can keep marking attendance with zero signal.

What requires a connection

  • Adding/editing/deleting students and classes
  • CSV import
  • Photo uploads
  • Logging in (there’s no offline login)

These show a clear “you’re offline” message if you try them without a connection, rather than a generic error.

How sync happens automatically

  • Every 30 seconds while the app is open.
  • Immediately when your device comes back online.
  • When you switch away from the tab/app (so a background app kill doesn’t lose queued writes — especially relevant on some Android devices).

If a queued item keeps failing after 20 attempts (e.g. a stale action from an old app version), it’s dropped with a toast rather than retrying forever — this is rare and doesn’t affect items that synced successfully.

Installing for best offline support

See Getting Started → Installing as an app — installing the PWA gives the most reliable offline experience, especially on iOS.