How DaPilot syncs your logbook across iPhone and iPad

Sync is one of those things that should be invisible. Sign in on both devices, log a flight on one, see it on the other. This guide covers how DaPilot's sync works, what to expect when you log offline, and how to fix anything that looks off.

Why this matters

If you log a flight on the iPhone in the parking lot, you want to see it on the iPad in your kitbag at home. Sync that breaks silently is worse than no sync at all. Knowing what to expect helps you trust the dashboard.

The architecture

DaPilot uses a local-first model with cloud as the source of truth.

  • Local cache: every device has a SwiftData database that holds a copy of your logbook for offline reading and writing.
  • Source of truth: a Supabase Postgres database in the United States. Row-level security policies scope every row to your user ID.
  • Sync queue: when a device cannot reach Supabase (no signal, no Wi-Fi), writes queue locally as JSON in UserDefaults and push later.

Reads always come from the local cache for speed. Writes go to the cache first and are pushed to Supabase asynchronously.

Set up sync on a second device

1Install DaPilot on the second device

Sign in with the same Apple ID on the iPad you use on the iPhone. The first launch downloads your existing logbook from Supabase into the iPad's local cache. A typical 4,000-flight logbook takes about ten seconds.

2Wait for the initial pull

You'll see a "Loading your logbook" screen briefly. After that, the dashboard appears with your full history.

3Confirm both devices show the same totals

Open Settings → Logbook on both devices. The total flight time, the most recent flight, and the total flight count should match. If they don't, the second device hasn't finished pulling. Wait a few more seconds and recheck.

Log a flight on one device, see it on the other

Log a flight on the iPhone. Open the iPad and pull down on the dashboard to refresh. The flight appears.

In practice the iPad refreshes automatically when it comes to the foreground. Manual pull-to-refresh forces an immediate sync if you're impatient.

The sync direction is bidirectional. Edit the same flight on the iPad and the change shows on the iPhone the next time it foregrounds.

Offline writes

If you log a flight on the iPhone with no signal:

  1. The flight saves to the local cache immediately. The dashboard updates. The currency cards refresh.
  2. The write is added to the sync queue.
  3. The next time the iPhone has a connection, the queue flushes to Supabase.

This means you can log every flight in airplane mode for a 6-day trip and they all push when you come back online. The queue is durable across app launches and reboots.

If you also use the iPad during that period, the iPad sees the queued flights only after the iPhone flushes its queue. The iPad will not see your offline iPhone writes until the iPhone has a connection.

Conflict resolution

Conflicts are rare in practice (most pilots don't edit the same flight on two devices simultaneously) but possible. The rule is field-level last-write-wins.

If you edit the PIC time on the iPhone offline and the night time on the iPad online for the same flight, both edits land cleanly because they touch different fields.

If you edit the PIC time on both devices offline and one is later in wall time, the later write wins when the queues flush. The earlier write is overwritten without prompt.

If sync conflicts in your workflow are common (you regularly use both devices for editing the same flight), the simplest discipline is to pick one device as the authoritative editor.

Things to know

The sync indicator

The cloud icon in the top-right of the dashboard shows sync state:

  • Solid: connected and synced.
  • Outlined with arrows: pushing pending changes.
  • Outlined with a slash: offline, queued.
  • Solid red: a sync error worth investigating (rare; usually a bad token).

Tap the icon to see the queue length and last sync time.

What if I sign out?

Signing out clears the local cache on that device. The cloud copy in Supabase remains untouched. Sign back in and the cache rebuilds. Your data is not lost.

What if I lose my phone?

Your data is in Supabase. Get a new phone, sign in with the same Apple ID, and your full logbook downloads to the new device. There is no manual restore step.

What if Supabase has an outage?

Reads continue from the local cache. Writes queue locally. When Supabase recovers, the queues flush. You'll see the offline indicator during the outage but the app keeps working.

Tips from pilots

If the dashboard ever shows different totals on iPhone vs iPad after both have been online for a while, force a full re-pull on the device with the wrong total: Settings → Logbook → Re-sync from cloud. This rebuilds the local cache from Supabase and resolves any drift.

If you're going on a trip with no expected connectivity, open the app at home before you leave so the local cache is current. Offline reads need a current cache; if the iPad hasn't synced in a month, the totals you see at the gate are a month out of date until you reconnect.

For airline pilots: the offline queue handles a full 4-day trip without connectivity. We've tested up to 50 queued writes per device with no loss.


· 5 min read