Vita
About
← All notes

How Vita works (without a server)

If you've used a few apps, you have a mental model of how they work: you log in, your stuff is on the company's server, the app on your screen is mostly a window onto that server.

Vita doesn't work like that. Here's how it actually works, in plain language.

Where your data lives

Your data lives in your browser. Not in a database we control. Not on "the cloud". On the same device you're reading this on, in a small storage area that the browser provides to every site.

Browsers have had this for a while now — it's the same place that remembers you're logged in to a website, or holds the draft of an email you started writing. Vita just uses it for something more substantial: every habit you log, every category you make, every record you save.

When you mark a habit done, here's what actually happens:

your device tap "Done" lock it up save it you scrambled bytes browser storage ↳ no server contacted
Marking a habit done. Three short steps, all inside your device. The internet is genuinely not involved.

That's the whole write path. No spinner. No "syncing to server". No round-trip. The internet is genuinely not involved in this part — the app would behave identically on a plane in airplane mode.

"But what about my other devices?"

This is the question that makes the "no server" architecture interesting. If your habits are only on your phone, how do they get to your laptop?

The answer is: when you opt in to sync, the scrambled bytes are relayed through a tiny server we run. But that server has a very specific job — pass scrambled bytes from one of your devices to another. It doesn't store readable data; it doesn't know what's inside the bytes; it couldn't read your habits if it tried.

The whole post "Using Vita on more than one device" walks through this if you want the details. The short version: the relay is a postman who can't open the envelopes.

"But what about backup?"

This is the legitimate question your gut is asking right now. If the data's only on your device, what happens when your phone falls into a lake?

Two answers — pick one, ideally pick both:

  1. A second paired device. If you set Vita up on phone and laptop, the phone falling into a lake is annoying but not fatal — the laptop has the same data. This is the main path. Pair a second device, and you've got a backup.
  2. Export to a file. You can save a full snapshot of your data to a file any time. Move it to your laptop, your hard drive, your favourite cloud — whatever you trust.

The honest catch: if you skip both and your only device dies, your data is gone. Nobody on our end has a copy.

What this gets you

There are real upsides to data living on your device instead of a server:

  • It's fast. Every interaction is local. There's no network involved when you tap "Done" — no spinner, no waiting for a faraway computer to acknowledge.
  • It works offline. Train, plane, basement, woods — Vita opens and works. Sync catches up when you're back online.
  • Nobody is reading your data. Not us. Not OpenAI. Not advertisers. There's no copy of your stuff in a database somewhere that an intern could query, an attacker could leak, or a future owner of the company could decide to "monetize".
  • The company can vanish and your data lives on. This is the line most worth dwelling on. If we run out of money tomorrow, your habits don't go with us — they're still on your device, exactly as they were.

That last point is the actual point. Everything else is a consequence.

What this costs you

Local-first apps have their own failure modes. The honest ones:

  • You're the backup. A normal app's company runs the backups. With Vita, you do — through paired devices or exports.
  • Bugs look different. When a server-backed app has a bug, it affects everyone the same way. With Vita, a bug could in theory damage data on one device while everyone else's is fine. We test thoroughly; nothing's perfect.
  • Storage isn't infinite. Browsers cap how much a site can store — hundreds of MB to a few GB, more than enough for habit tracking unless you're recording thousands of activities a day. If you ever approached a limit, you'd get a clear warning rather than silent data loss.

Why bother?

A normal habit-tracker app is much simpler to build. The user submits a form, it goes to an API, the API writes to a database, the screen shows what it reads back. Done.

Vita does more work on your device so we do less reading of your data. We think that's the right trade.

If we ever go away — moved on to other projects, or just stopped shipping — your data is still there. You can decrypt it with the keys in your browser. You can take it with you. That property — the company can vanish and you still have your habits — is what all the careful engineering is for.


Up next: Encryption, in plain language — what "your data is encrypted" actually means, and the difference between "encrypted on the server" (which most apps mean) and "encrypted so the server can't read it" (which Vita means).