Skip to content

How Syncing Works

A plain-English tour of how Scope's data moves between your phone, tablet, and any other device you've logged into.

Sync

Local First, Cloud Second

Scope is local-first: your device is the primary store, not the server. This means:

  • Everything you do is written to local storage first, immediately. No network needed.
  • A background sync service notices new changes and uploads them to the server when there's connectivity.
  • The server distributes changes to your other devices, which then write them to their own local storage.

The practical upshot: the app never feels slow or blocked on network. You log a habit, you see the confirmation instantly - the server gets the update seconds (or minutes, offline) later.

Handling Conflicts Between Devices

What if two devices make changes to the same thing at roughly the same time?

Scope uses last-write-wins based on a timestamp: the more recent change overwrites the older one.

  • Concurrent completions on the same habit - the newer log wins, the older one is overwritten. In practice, this rarely happens because both would typically be accepted (two completion logs are fine; they're separate events).
  • Edits to the same item from two devices - the more recent edit wins. If you renamed a goal on your phone and also renamed it differently on your tablet within a few seconds, the one whose device clock is more recent wins.

The exception: deletes always win. If one device marked something deleted, the other device's "not-deleted" version of the same record loses. This prevents resurrection - once something is deleted, it stays deleted across all devices.

When Things Get Deleted

When you delete something in Scope, it's a soft delete at first:

  • The record is marked deleted locally.
  • The delete propagates through sync to other devices and the server.
  • Other devices mark their copies deleted.
  • Eventually, the records are hard-deleted (purged) after enough time has passed that every device should have gotten the message.

This multi-stage delete is what makes "deletes always win" work reliably even across slow-syncing devices.

Ephemeral Content

A few categories of content are cleaned up aggressively because they regenerate daily:

This prevents ephemeral data from accumulating forever. Your permanent content (habits, journals, goals, tasks, projects) is not subject to this cleanup - those stay until you explicitly delete them.

If You're Offline

While offline:

  • Everything works locally. You can create, edit, complete, delete as normal.
  • Changes queue in a local sync buffer.
  • Nothing syncs to the server or to other devices until connectivity returns.

When connectivity comes back:

  • Queued uploads fire - your local changes go to the server.
  • Server state downloads - changes from other devices come in.
  • Conflicts resolve as usual (last-write-wins, delete-wins).

You don't have to trigger sync manually. Opening the app, unlocking the screen, or reconnecting to WiFi all nudge the sync service to catch up.

Multiple Devices, Same Account

You can have Scope installed on as many devices as you want, all signed into the same account:

  • Each device needs the same encryption key (via a recovery code or QR transfer) to decrypt encrypted content.
  • Once keys are shared, every device sees the same data after sync.
  • Writing on any device propagates to all others.

A typical setup is "phone + tablet" or "phone + laptop browser." Both work identically.

What the Server Sees

To be concrete about the trust model:

  • The server sees - ciphertext of your encrypted content, structural metadata (timestamps, counts, IDs), public data (username, level, etc.).
  • The server does not see - the plaintext of your habits, tasks, goals, journals, projects, wishlist items.
  • The server cannot decrypt anything - your key never leaves your device in readable form.

See End-to-End Encryption for the full privacy model.