Skip to main content
Writed
All articles

How to Journal Without Your Data Going to the Cloud

A journal is the most private thing you write. Here's why most apps still upload it — and how to keep one, with AI, that never touches a server.

Your journal is probably the most private text you'll ever write. So it's worth asking a simple question about any journaling app: where does what I write actually go?

For most apps, the honest answer is "to our servers." Even privacy-conscious ones usually sync your entries to a cloud account so they can offer multi-device access, backups, or AI features. Encryption helps, but it doesn't change the fact that your diary is leaving your device.

There's another way to do it.

Why apps upload your journal

Three features push journals into the cloud:

  • Sync — to read entries on your phone and laptop, the app needs a shared copy somewhere.
  • Backup — so you don't lose everything if your device dies.
  • AI — "ask your journal" features usually send your text to a server-side model (OpenAI, Anthropic, etc.) to generate answers.

That last one is the big shift. The moment a journal adds AI, it often starts shipping your most personal writing to a third-party API.

What "local-first" means

A local-first app flips the default: your data lives on your device, and the network is optional. The app should work on a plane. Nothing syncs unless you opt in.

For a journal, local-first is the strongest privacy model there is — stronger than "encrypted cloud," because the data simply never leaves in the first place. There's no server to breach, no account to leak, no policy change to worry about.

Can you have AI and local-first?

Yes — and this is the part that's new. Browsers can now run real AI models on your own hardware:

  • Embeddings (turning your text into vectors for search) run with small models like bge-small-en via WebAssembly.
  • Chat runs with models like Llama 3.2 3B through WebGPU, your computer's graphics chip.

That means an app can let you ask questions about your journal and get answers grounded in your real entries — without sending a single word to a server.

How to do it with Writed

Writed is built exactly this way:

  1. Write entries in Markdown. They save to your browser's local storage (IndexedDB).
  2. Saving indexes them — each entry is chunked and embedded on your device.
  3. Ask anything. Writed retrieves your most relevant entries (semantic + keyword search) and a local chat model answers, citing the entry and date.

The only network request is a one-time download of the model files on your first visit. After that, you can disconnect entirely. Want proof? Open DevTools → Network, write and chat, and watch for upload traffic. There isn't any.

Checklist for a no-cloud journal

  • ✅ Entries stored on-device (not a cloud account)
  • ✅ AI runs locally, not via a server API
  • ✅ Works offline after first load
  • Export to plain files so you're never locked in
  • ✅ Bonus: open source, so the privacy claims are verifiable

Writed checks all five. It's free, needs no account, and exports your journal as plain Markdown whenever you want.

Start a private journal now

Open Writed, write your first entry, and ask it a question — all without your words leaving the device you're reading this on.

Frequently asked questions

Is a local-first journal more private than an encrypted cloud one?
Generally yes. Encrypted cloud sync protects data in transit and at rest, but your entries still leave your device and depend on the provider's implementation. Local-first means the data never leaves at all, so there's no server to breach.
How can AI answer questions about my journal without uploading it?
Modern browsers run AI models on your own hardware — embeddings via WebAssembly and chat via WebGPU. Writed uses this to search and answer over your entries entirely on-device.
What happens if I clear my browser data?
Because entries live in your browser's storage, clearing site data deletes them. Export your journal as a Markdown zip regularly to keep a backup you control.