Vaultrice is a globally distributed key-value store with a familiar API, built for real-time collaboration. Stop wiring together databases and WebSocket servers — get a complete solution in one simple, powerful package.
import { NonLocalStorage } from '@vaultrice/sdk';
const nls = new NonLocalStorage(credentials, 'shared-object-id');
// Set a value from one client...
await nls.setItem('hello', 'world from client A');
// ...and listen for it on another.
nls.on('setItem', 'hello', (item) => {
console.log(item.value); // 'world from client A'
});
Go from idea to live, collaborative app in minutes. Our architecture is designed to make real-time simple and scalable.
Use the simple setItem()
API that feels just like localStorage
. Store strings, numbers, or complex JSON objects with ease.
Any change to your data is instantly broadcast over a persistent WebSocket connection to all subscribed clients. No polling, no manual refresh.
State is seamlessly synced across all tabs, devices, and even different domains, making it perfect for building unified user experiences.
⚙️ Familiar API ⚡ Built-in Real-Time 🛡️ Secure by Default.
If you know localStorage
, you know Vaultrice. Get up and running in minutes with a simple, intuitive API that doesn't get in your way. Live data sync and a full Presence API are included. No need to integrate or pay for a separate WebSocket provider. From default transport encryption (TLS) to optional client-side End-to-End Encryption, you choose the level of security your data needs.
Vaultrice is flexible, but it's purpose-built to solve common developer challenges.
Share user preferences, session state, or a shopping cart across multiple domains or subdomains.
// On site-a.com
await userPrefs.setItem('theme', 'dark');
// On site-b.com, the change is instant
userPrefs.on('setItem', 'theme', (item) => {
// item.value is 'dark'
});
Build real-time features like "who's online" lists, shared to-do apps, or simple multiplayer game lobbies with our integrated Presence API.
// See who's currently viewing the document
await nls.join({ name: 'Alice' });
nls.on('presence:join', (conn) => {
// console.log(`${conn.data.name} is now online.`);
});
const connections = await nls.getJoinedConnections();
console.log(`${connections.length} users online`);
connections.forEach(user => {
console.log(`${user.data.name} joined at ${new Date(user.joinedAt)}`);
});
Enable or disable application features instantly for all users without deploying new code.
// In your admin panel
await featureFlags.setItem('enableNewDashboard', true);
// In your client app
if (await featureFlags.getItem('enableNewDashboard')) {
// show new dashboard
}
Create an account and start building your next real-time application in minutes. Your first project is on us.