— Products

Why a gym app has to work with no signal.

Basements, steel racks and dead zones — gyms are where mobile signal goes to die. UltraFit360 is built offline-first so a workout never stalls waiting on the network.

4 min readPublished 2026-05-29By AptixLabs studio
A laptop with code, representing offline-first mobile architectureAptixLabs · 2026-05-29

Gyms are some of the worst connectivity environments a mobile app will ever run in. Concrete basements, steel equipment, crowded 5pm wifi — signal drops constantly. A fitness app that pauses to "sync…" mid-set loses the user instantly. UltraFit360 is built offline-first so the workout is always the source of truth, and the network is a background detail.

Local-first writes

Every action a user takes — logging a set, finishing a rep, completing a workout — writes to the device first and returns instantly. Firestore's offline persistence keeps a local cache that the UI reads from, so the app feels fast whether or not there is a connection. When signal returns, the queued writes flush to the server automatically and in order.

Conflict handling

Because a user might log workouts on a phone with no signal and a watch with intermittent signal, writes can arrive out of order. The studio uses last-write-wins on simple fields and server-timestamp ordering on the workout log so the timeline reconstructs correctly once both devices sync. Programme edits — which are higher-stakes — use transactions instead.

What we cache and what we don't

  • Active programme + the next few workouts — always cached locally
  • The user's recent history — cached for streak and progress views
  • Coaching audio — pre-fetched on wifi before the session, never mid-workout
  • Leaderboards and social feeds — network-only, they degrade gracefully to a placeholder

Have a project like this?

The studio is taking on a small number of partners. Tell us what you're building — we reply within a working day.

Start a conversation