I'm Adriano, one of the makers of Vaultrice. I'm excited (and a little nervous!) to share what we've been building.
For years, we found ourselves in a frustrating loop: whenever we needed a simple real-time feature—like a "who's online" list, a collaborative app, or just sharing state between a marketing site and our main app — we'd end up spending days setting up the same stack or discarded to do it. Setting it up, it always involved wiring together a database, a WebSocket server, an API, and managing the connection state. It felt like massive overkill for what we were trying to achieve.
We wanted a tool that felt as simple to use as the browser's `localStorage` API but worked across domains and devices, with real-time sync and security built-in.
So, we built Vaultrice.
It’s a key-value data store built on top of Cloudflare's Durable Objects, which gives you a strongly consistent backend for each data object. You interact with it through our TS/JS SDK, which comes in two flavors:
1. `NonLocalStorage`: A low-level client with a `localStorage`-like API (`setItem`, `getItem`, etc.) plus real-time events and presence (`.on()`, `.join()`).
2. `SyncObject`: A higher-level, reactive JavaScript Proxy. You just change a property on an object (`doc.title = 'New Title'`), and it automatically syncs to all other connected clients.
The goal is to let you build the real-time features you want in minutes, not days. We've also put a lot of thought into a layered security model, allowing you to go from simple API key restrictions all the way to server-signed object IDs and client-side E2EE.
We’ve just launched and would be grateful for any feedback from the HN community. What do you think of the API design? Are there use cases we haven't considered? Any thoughts on the security model?
We'll be here (or via email (support@vaultrice.com)) to answer any questions. Thanks for checking it out!
taherchhabra•1d ago
adrai•1d ago
Think of it like localStorage, but instead of being tied to one browser on one device, the data lives in a globally-available, real-time object. Any change one player makes (like moving their character or firing a shot) can be sent instantly to the other player’s browser — without having to set up your own server or WebSocket layer.
For your son’s zombie shooter: • Each game session could be one Vaultrice “object” (with an id like game-123). • Each player writes their position, health, actions to that object. • The other player’s browser listens for changes and updates the game state instantly. • Presence tracking is built-in, so you can show “who’s in the game” without extra code.
The nice part is that the SDK’s API feels familiar — setItem, getItem, and on() for events — so you can get a working multiplayer prototype with just a few lines. If you want even less boilerplate, the SyncObject API lets you just set properties on a shared object and Vaultrice syncs it behind the scenes.
It won’t handle game physics for you, but it’s a fast, simple way to make a turn-based or moderately real-time multiplayer experience without hosting your own backend.
Gys•1d ago
adrai•1d ago
Gys•1d ago