Every time you hit 'save' on a mobile app, you aren't just saving data—you're initiating a multi-step handshake with a server you don't own. I once watched a user lose two hours of focus-timer data because their subway commute interrupted a POST request that wasn't designed for instability. That was the moment we decided to stop building for the cloud and start building for the device at VanzaLabs.
The Fallacy of Always-Connected Systems
Most modern mobile apps treat the network as a constant. When the network flickers, the app hangs. If the server is overloaded, you get a spinning wheel. As engineers, we’ve been trained to treat the server as the 'source of truth.' But in reality, the source of truth is the hardware in the user's pocket.
At VanzaLabs, we shifted our architecture to a 'Local-First' paradigm. By prioritizing local storage, we ensure that the application state is immediately available, regardless of connectivity. The app doesn't ask for permission to save; it writes to a local SQLite instance or a high-performance KV store, and sync happens as a secondary, non-blocking process.
Solving Conflict Resolution without a Middleman
When you remove the central authority (the server) from the equation, you inherit the classic distributed systems problem: conflict resolution. If a user edits a note on their tablet while offline and then updates the same entry on their phone, the standard 'last-write-wins' strategy is a recipe for data loss.
We implemented a CRDT-inspired (Conflict-free Replicated Data Type) approach for our internal tooling. Each data entry is assigned a vector clock and a unique UUID. Instead of overwriting files, we treat state changes as a sequence of immutable operations.
- Append-only logs: Every interaction is an event, not a state replacement.
- Vector clocks: We track causality, not just wall-clock time, which prevents the synchronization of out-of-order events.
- Direct P2P Sync: Using encrypted noise protocols, our apps can sync directly between devices on the same local network, completely bypassing the need for a central database to orchestrate the handoff.
Privacy as an Engineering Constraint
When you build a SaaS, you are technically responsible for the PII (Personally Identifiable Information) of every user. That’s a liability, not an asset. By moving the logic to the edge, we effectively nullify this risk. At VanzaLabs Studio, our encryption model is simple: the user holds the key, and the data never leaves their device in a readable state.
We use AES-256-GCM for all at-rest encryption. Because we aren't storing user data on a central server, there is no database to hack, no API endpoint to exploit, and no 'subscription' model required to pay for the massive overhead of scaling backend infrastructure. We build small, efficient utilities that don't call home to report on your usage habits.
Why We Bet on the Local-First Future
We are currently seeing a developer push-back against the 'subscription-everything' model. Users are tired of paying $9.99/month for a simple productivity utility that breaks the moment their WiFi drops. By optimizing for local-first architecture, we reduce our own infrastructure costs to near zero, allowing us to build VanzaLabs as a sustainable, independent entity rather than a venture-backed machine that needs to grow at all costs.
Architecture is a choice of values. If you want to build software that respects the user, stop trying to turn their phone into a thin client for your server and start building tools that function as extensions of their own hardware.
Check out our latest work and engineering experiments here.