Skip to content

Calimero Documentation

Packet switching was invented to route around failure — no center to knock out, no single authority to ask permission. The protocols that won, TCP/IP, SMTP, and the early Web, were open and federated. Your machine was a peer, not a client asking a server for permission to see its own data.

Why we centralized — and why that’s reversing

Section titled “Why we centralized — and why that’s reversing”

Decentralization was always the design; for thirty years it was simply the harder path, and the cloud won on convenience. But every force that pushed us into the datacenter has since flipped:

ForceWhy we centralizedWhy peer-to-peer works now
HardwareHome machines were weak, slept, sat behind NAT, and changed IP addresses — unreliable hosts.Phones and laptops have many cores, gigabytes of RAM, and always-on connectivity.
BandwidthLinks were scarce and metered; keeping data near users wasn’t practical.Ubiquitous broadband and 5G make always-on peers realistic.
Cost at scale”Decentralized” was assumed to mean “more expensive” — the naive model replicates all data to every node.State is sharded by context — each node stores and syncs only the contexts it belongs to, so cost scales with what you actually use, not the size of the network.
Developer experienceConflict resolution, sync, key management, NAT traversal — each was a dissertation, not a library.Composable primitives: WASM runtimes, libp2p, mature CRDT libraries, Rust.
User experienceOne server was easier to ship and reason about than coordinating thousands.Local-first apps feel instant, work offline, and sync the moment they reconnect.
SecurityTrusting a single server you ran was the only practical model.End-to-end encryption by default, and Trusted Execution Environments whose attestation makes even hosted infrastructure verifiable.
Open sourceThe stack was proprietary, or a from-scratch build behind a vendor’s walls.A deep open-source foundation — Rust, WASM, libp2p, CRDTs — and fully open platforms like Calimero you can run, read, fork, and extend.

So we traded ownership for convenience — our data moved onto other people’s servers, and we now rent access to it, along with the outages, lock-in, surveillance, and breaches that come with a single point of control. That trade no longer holds: you can finally have decentralization’s ownership and privacy together with the cloud’s convenience. Closing that gap is what Calimero is for.

Why Calimero → · How it compares to Holepunch, Nostr, and others →

Calimero is a privacy-first application layer for peer-to-peer collaboration — not a blockchain. Where a blockchain reaches global agreement through consensus (and pays for it in cost, throughput, and publicity), Calimero uses CRDTs so state converges automatically among a group — no quorum, no fees, and even while offline. You write your app once, compile it to WebAssembly, and every node runs the same logic over state that syncs itself. Your data lives with the people using the app; operators never see it.

flowchart LR
    U[Users and devices] --> C[Private context]
    C --> N[Calimero nodes]
    N --> S[CRDT state sync]
    N --> R[Deterministic WASM runtime]
    C -. selective proofs .-> V[Verification layer]
    V -. optional anchor .-> B[External ledger]

    classDef lime fill:#14210a,stroke:#a5ff11,color:#f5ffe0,stroke-width:2px;
    classDef teal fill:#0b2526,stroke:#39d0c8,color:#dcfffd,stroke-width:2px;
    classDef purple fill:#221133,stroke:#c084fc,color:#f7ecff,stroke-width:2px;
    classDef orange fill:#2c1805,stroke:#ffb54d,color:#fff2d6,stroke-width:2px;

    class U,C lime;
    class N,S teal;
    class R,V purple;
    class B orange;
AttributeWhat it means
Local-first by defaultYour data stays on your node; you control replication
DAG-based CRDT syncConflict resolution without coordination, resilient offline
Event-driven architectureReal-time updates emitted across participating nodes
Encrypted P2P channelsEnd-to-end secure sharing between context members
WASM runtimeWrite application logic in Rust, ship deterministic WebAssembly
Optional external anchoringAnchor a proof or checkpoint to an external ledger when you need tamper-evident verification
  • Write apps, not infrastructure. The sandboxed runtime handles the hard, error-prone parts — storage, end-to-end encryption, and conflict-free synchronization — so you write plain application logic and ship. No database to run, no sync code to maintain, no key management to get wrong.
  • Fully open source, no lock-in. Every layer is open: read it, run it, fork it, customize it. Your app and your users’ data belong to you, not to a platform you can’t leave.
  • A fair deal, not surveillance. Most software today monetizes the people using it. Calimero removes the temptation — operators, hosted ones included, can’t see user data. Ship your product on Calimero Cloud at a fair, predictable price, or self-host it entirely. It’s a win-win: you deliver the best possible service, users keep ownership, and you can move between hosted and self-hosted without rewriting a thing.
Start hereWhat you get
Download DesktopGUI app — manage nodes, launch apps, and sign in automatically. No CLI needed.
Run a local networkBootstrap a node with Merobox and drive a context end-to-end.
Build from a templateScaffold a Rust app + client with create-mero-app.
Explore a reference appLearn from maintained examples such as Battleships or Mero Chat.
Understand the architectureSee how contexts, nodes, state sync, and identity fit together.
If you are…Go to…Why
New to CalimeroIntroductionPhilosophy, architecture snapshot, and a first run.
Curious about the visionWhy CalimeroThe full case, the ecosystem, and how it compares.
Want a GUI, no CLICalimero DesktopDownload, install, and manage everything visually.
Shipping an applicationBuilder DirectoryToolchain checklist, dev loop, and SDK links.
Publishing an app to the registryApp DirectorySign, bundle, and push with mero-sign + calimero-registry.
Securing deploymentsPrivacy · Verifiability · SecurityIsolation model, identity delegation, auditability patterns.
Looking for toolingTools & APIsRuntime, admin, SDK, Desktop, signing, and automation catalog.
  • Contexts as private networks — CRDT-backed state and scoped storage so teams can collaborate without global consensus.
  • Hierarchical identities — A root identity delegates per-device client keys; every operation is signed.
  • Modular runtimemerod orchestrates networking (libp2p), storage, and WASM apps with JSON-RPC / WebSocket surfaces.
  • Reference-site docs — This site stays high-level; the full detail lives in the per-tool reference sites for core, mero.js, and the rest of the stack.