Disclaimer · Not medical advice · AI meal photos are estimates

Blog

August 1, 2026 · 13 minute read · ~922 words

Local-first notes for everyday logging

Why Zeal can keep meal, water, workout, and sleep entries on your device first—and when cloud sync is worth turning on.

The problem with cloud-only journals

A food log that vanishes when the network drops is not a food log; it is a hostage note. People log in kitchens, gyms, trains, and hotel lobbies. Those places do not guarantee perfect connectivity, and they especially do not guarantee that you want every snack synchronized to a remote database before you have decided you trust the account.

Local-first does not mean “never use the cloud.” It means the device remains a complete place to write. Sync becomes an upgrade for people who want continuity across phones, not a prerequisite for typing lunch.

What stays on the device

In Zeal’s on-device mode, meals, hydration, workouts, sleep notes, templates, and preferences can live in browser storage on that device. Exports are yours to download. Clearing site data clears the local journal—so backups matter if you stay local for months.

Optional AI analysis still needs a network call when you use it, because the model runs on a server or through a key you provide. The journal entry that results can still be saved locally afterward. That split—network for estimates, device for the record—is deliberate.

When sync earns its keep

Cloud sync helps when you change phones, share a tablet and a laptop, or want a recovery path beyond one browser profile. It also unlocks account features that cannot live only in localStorage: signed-in settings, premium entitlements, and developer tools on the studio side.

We treat sync as a consentful switch, not a silent upload. If you continue without an account, you should not be surprised by a remote copy of your meals. If you sign in and enable sync, you should see that choice reflected in settings and in the privacy language on the product host.

Design consequences

Local-first forces boring excellence: clear empty states, honest error messages when sync fails, and no fake “everything is backed up” banners. It also forces us to keep the data model understandable enough that a CSV or JSON export remains useful.

For a small studio, that discipline is a feature. We would rather explain storage plainly than hide a maze of automatic accounts behind a cheerful onboarding carousel.

Failure modes we design for

Local storage can be cleared by the browser, by a privacy extension, or by the user. We say that plainly instead of pretending on-device data is immortal. Export exists so you can take a snapshot before a device wipe.

Sync can lag, conflict, or fail mid-day. When that happens, the UI should admit uncertainty rather than invent a perfect merge story. People forgive delay; they do not forgive silent loss.

AI analysis can time out or return a poor estimate. The entry should still be editable by hand. Estimates are a shortcut into the journal, not a verdict that locks the day.

Privacy posture in practice

Meal photos and body metrics are sensitive even when someone treats them casually. Keeping a usable local mode reduces pressure to create an account on day one. When an account exists, cloud rows should follow the same retention and deletion expectations described on the product privacy page.

We do not use journal contents to personalize ads. Advertising, when present, stays on public HTML. That separation is easier to audit than a clever mixed system that “mostly” keeps private data out of ad pipelines.

Practical habits that fit local-first

Export on a schedule if you stay local for a long time—monthly is enough for many people. Store the file somewhere you already back up. The journal cannot replace your own backup discipline.

Name devices in your head: “kitchen tablet stays local,” “phone syncs.” Mixed expectations are how people think data vanished when it simply lived on the other screen.

When you enable sync, skim the product privacy page once more. The point is not legal theater; it is confirming that the mental model in your head matches the software you just trusted with a login.

If AI estimates annoy you, turn them off and log by hand. Local-first includes the freedom to keep the journal boring. Boring logs are often the ones people still maintain in November.

How we talk about local-first publicly

Public Zeal pages and studio essays should describe storage the same way the settings screen does. If on-device mode is available, we say so. If cloud sync requires an account, we say so. If clearing site data deletes the local journal, we say so without burying the warning in a footnote.

That consistency matters for people and for program reviewers. A privacy page that promises local control while the product silently uploads meal photos would be a policy failure, not a marketing opportunity. We would rather lose a conversion than invent a storage story we cannot defend in support email.

Local-first also shapes how we write guides. A hydration guide assumes you can log a glass without waiting for a spinner. A sleep guide assumes last night’s hours are still readable on the device after a flight. Product copy that depends on perfect connectivity trains people to abandon the habit the first time a hotel Wi‑Fi portal appears.

A short closing

Local-first is a bias toward user control, not a religion against servers. Use the mode that matches your risk comfort and your devices. Just make the choice deliberately. When in doubt, export a copy, then decide whether sync is worth the trade.

Related studio notes

Disclaimer: Educational studio writing only—not medical advice. Zeal AI meal photos are optional model estimates and are not lab measurements. Read the full Disclaimer and Zeal Privacy before relying on any health-adjacent wording.

All blogs Visit Zeal