Storage & sync · current Web app

Your text is saved immediately.
Signed-in sync starts automatically.

JotGrove’s Web app writes Cards, Wall positions, plans, tasks, settings, AI-review data, and Reset progress to IndexedDB in the current browser. Covered Card, placement, plan, and task changes are saved with a persistent outbox entry. When you are signed in and online, sync normally starts within about two seconds; reconnecting or signing in again resumes pending work automatically.

At a glance
  • Immediate local write per verified account
  • Automatic sync when signed in and online
  • Persistent outbox retries after a connection returns
The text write path

Edit saved locally

  1. 01
    Save now

    The text is committed to this browser immediately.

  2. 02
    Queue safely

    The same transaction adds an operation ID and base revision to the persistent outbox.

  3. 03
    Sync automatically

    While signed in and online, pending work normally starts sending within about two seconds.

  4. 04
    Resume

    Offline work stays pending and continues after network recovery or a later sign-in.

Save immediately → sync automatically when online

Local-first, not local-only

A local write path keeps ordinary text work responsive when the network drops.

Local-first describes where a change is committed first. It does not mean all features work offline, that synced content stays only on one device, or that the service is end-to-end encrypted.

On this page
  1. 01In this browser
  2. 02Account separation
  3. 03The sync outbox
  4. 04Concurrent edits
  5. 05Features that need the server
01

In this browser

The working copy lives in IndexedDB.

Cards, Wall positions, plans, tasks, AI runs and artifacts, settings, the sync outbox, and Reset Your Life journeys are stored in a browser database. Text edits can therefore remain available through a temporary network interruption.

  • One transaction can save content and queue its sync operation together
  • UUID-based records keep local creation independent of a round trip
  • After a successful visit, the installable Web app can reopen its cached shell offline; private API data is not placed in that cache
02

Account separation

Each verified account and workspace gets its own local database.

After email verification, JotGrove selects a database scoped by the validated user and workspace IDs before remote content is loaded. Signing out keeps that account’s local database so a later sign-in can restore it.

  • A new account starts clean with settings only
  • Changing account scope reloads before bootstrap writes locally
  • The old pre-account browser database is not imported automatically
03

The sync outbox

Offline text waits safely and uploads when the connection returns.

Each queued mutation is persisted in IndexedDB with a stable operation ID and its starting revision. Push requests are idempotent, so retrying the same accepted operation does not intentionally create it twice. Pull requests use an ordered cursor to bring remote changes back to the browser.

  • Repeated offline edits are compacted to the latest relevant snapshot before push
  • Network recovery and a later sign-in both resume pending sync automatically
  • Signed-in pending work is normally scheduled after about 1.5 seconds, with an approximately 30-second safety check; Sync now remains available
04

Concurrent edits

Current Web sync has no manual version-conflict workflow.

The Web app currently calls v1 sync. When a Card, Plan, or Task arrives with an older base revision, the server applies the incoming payload, advances the revision, and returns it as merged. A later-arriving snapshot can therefore replace more recent fields from another device instead of opening a conflict for you to resolve.

  • Wall placement writes can compare per-field clocks
  • The queue can rebase limited ID-collision or missing-record cases
  • A field-conflict engine exists in server v2, but the current Web client does not use that endpoint
05

Features that need the server

Media, transcription, AI, and external connections have a different network boundary.

Image bytes are not stored in IndexedDB and have no offline upload or retry queue. A failed upload can leave only the text Card. Successful images use authenticated attachment endpoints. For voice-to-text, the browser sends audio to JotGrove’s server, which forwards it to the configured transcription provider; the editable transcript is saved, not a playable voice memo. AI, link services, authentication, and account sync also require the server.

  • Attachment bytes use authenticated server storage
  • MCP clients can read only the latest data that has reached the server
  • Use Sync now before asking an external client about a very recent edit

Read the status literally

Local, pending, and synced are different states.

The interface can tell you whether this browser has work still waiting to reach the account. That distinction matters before clearing data or using MCP elsewhere.

  1. 01

    Local-first is not an end-to-end encryption claim

  2. 02

    The current product is a personal workspace without collaborative CRDT editing

  3. 03

    Current v1 Web sync may accept concurrent content as merged; it has no user-facing version merge screen

Automatic when online

Keep writing—even if the connection drops.

Text stays in the persistent outbox and uploads automatically after the network returns or you sign in again. Use Sync now only when you want to confirm a very recent edit before opening it in another session or MCP client.

Open JotGrove