Work together
Chat, docs and sheets your team actually owns.
Channels, shared documents and live spreadsheets that sync between your team’s devices — not through someone else’s database.
The open-source protocol for self-sovereign applications
Self-sovereign applications run on your own devices and sync directly between them, so your data answers to you — not to the company that made the app. Run it yourself for free, or let Calimero Cloud keep it always on.
01Why it’s different
It lives on your devices — and on sealed (hardware-attested) machines, if you turn on always-on.
Only its members — and sealed machines they approve — hold its keys. Removed members can’t read anything new.
Edit anywhere. Changes merge automatically when devices meet again.
Apps are signed by their makers and checked again by the node that installs them.
Your devices. Your keys. Your rules.
02How it works
1
Get Calimero Desktop. It runs your node.
Get Desktop →2
Install an app. It creates your namespace: the app’s own private space for its data, people and rules. You’re the admin.
Explore applications →3
Turn on always-on. Sealed cloud machines keep it online while you sleep.
Go always-on →4
Send one link. People join from Desktop or the browser — and with always-on, even while you’re offline.
How invites work →In the browser, each action is signed on the person’s own device; a cloud machine carries out exactly that — nothing more.
03Use cases
A few people — or agents — who share live, sensitive state and can’t hand it to a third party.
AI agents
Sensitive data
Between organisations
And everything else
04Apps
Work together
Channels, shared documents and live spreadsheets that sync between your team’s devices — not through someone else’s database.
Keep it private
Collect signatures on a PDF, share a credentials vault, run a private forum — with no vendor in the middle.
Make things
Design, edit and build in real time with the people you choose. The work stays with the people making it.
05Always on
Calimero Cloud
We run sealed, always-on machines for your namespaces — so your team stays in sync and people can join from any browser. Even we can’t read what’s inside them.
06Build on it
Building privacy-preserving apps has never been simpler: no servers, no database, no sync engine, no auth service and no key management for you to run.
#[app::state(emits = for<'a> Event<'a>)]
pub struct KvStore {
items: UnorderedMap<String, LwwRegister<String>>,
}
#[app::logic]
impl KvStore {
pub fn set(&mut self, key: String, value: String) -> app::Result<()> {
self.items.insert(key, value.into())?;
Ok(())
}
pub fn get(&self, key: &str) -> app::Result<Option<String>> {
Ok(self.items.get(key)?.map(|v| v.get().clone()))
}
pub fn remove(&mut self, key: &str) -> app::Result<Option<String>> {
let removed = self.items.remove(key)?.map(|v| v.get().clone());
if removed.is_some() {
app::emit!(Event::Removed { key });
}
Ok(removed)
}
}That state syncs, merges and stays encrypted between everyone in the namespace. No server code.
Write the logic in Rust, connect from JavaScript, React, Python, Swift or Kotlin. Sync, encryption and peer networking are handled for you.
Apps compile to WebAssembly and run on any node — a laptop, a server or Calimero Cloud. Clients run in browsers and on phones.
Every namespace has its own keys, held by its members and the sealed machines they approve. Removing a member rotates the key.
Spin up several nodes with merobox and test sync, members and invites end to end before you ship.
07Compare
| Question | Calimero | Typical cloud app |
|---|---|---|
| Who holds the data | The people using the app | The company running the servers |
| Can the host read it | No — not even Calimero Cloud | Yes |
| Works offline | Yes — merges on reconnect | Rarely |
| Backend to build and run | None — the protocol is the backend | Servers, database, sync, auth |
| Leave the provider | Sync a full copy to your own device | Export, if they let you |
| Run it yourself | Yes, free and open source | No |
08Questions
An open-source protocol for self-sovereign applications: apps that run on the devices of the people using them, sync directly between them, and keep data encrypted with keys only their members hold.
Not one of your own. Calimero Desktop runs a node on your computer. If you want your app online while your devices sleep, Calimero Cloud runs always-on machines for you.
Yes, once the namespace is always-on, for apps with a web version — which is almost all of them. They open the invite link in a browser; an always-on Calimero Cloud machine lets them in and carries out exactly what they sign.
Running Calimero yourself is free and open source. Calimero Cloud starts free; always-on plans are $20 and $200 a month, and for anything larger, contact us.
No. There is no chain and no gas fees. Running Calimero yourself is free; you pay only if you want Calimero Cloud’s sealed machines for high availability and delegated execution. Calimero uses CRDTs so a group’s shared state merges automatically — even offline.
An app’s own private space — its data, its people and its rules. You create one when you install an app, and you’re its admin.
App logic in Rust with the Calimero SDK (JavaScript is experimental). Front ends connect with clients for JavaScript, React and Python, plus early Swift and Kotlin SDKs.
Install an app, build one, or let us keep yours always on.