Home / Platform

How it works

One attested node, every layer built in.

A Calimero app is one signed bundle that runs on identical sealed nodes. The node brings the runtime, state and sync, storage, networking and keys, so the stack you would otherwise build, seal and attest piece by piece is already there.

  • 1node image to measure and attest
  • 8layers in every node
  • 2of them you write: logic and frontend
  • 1operation upgrades the app on every node

02 · Embedded frontend

The UI ships inside the app.

Your web frontend is signed with your logic and served by the node from the app's own address. No separate site to host, cache or secure.

  • Signed with the app: the signature covers the UI as well as the logic.
  • Served by the node: no frontend host, no CDN to configure.
  • No remote scripts: the page only loads its own files.
my-app.<your-node>
served by the nodeown originsigned files only
Read moreShow less
Terminal
cargo mero bundle --frontend-dir ./dist
  frontend · index.html + 11 files · signed
  ✓ my-app.mpk
  • Signed with the app

    Each frontend file is recorded with its size and hash, so the signature covers the UI as well as the logic.

  • Served by the node

    The node serves the frontend from the app's own origin. No frontend host, no CDN to configure.

  • No remote scripts

    The served page only loads its own files, so a third-party script can't slip in.

03 · Sharded monolith

Back to the future

Scale by adding nodes, not tiers.

A Calimero app is a sharded monolith: one sealed app replicated across identical nodes, its data split into contexts placed across them. Serverless-like scaling, with no central database to run.

  • Each context lives only on its nodes, under its own key.
  • A new node syncs its contexts from peers.
  • One image to attest, one kind of node to add.
See the fleet and the stackShow less

A sharded monolith: the same sealed app on every node, contexts across the fleet

Microservices and a central database in TEEs

  • To scale, grow each tier and re-attest each one.
  • One outage or breach touches every customer.

Calimero: sharded monolith

  • Every node runs the whole app; each holds only the contexts placed on it, each under its own key.
  • A new node syncs its contexts from peers.
How it scales
QuestionMicroservices + central database in TEEsCalimero sharded monolith
Where data livesOne cluster holds every customerEach context only on its member nodes, under its own key
How you scaleBigger database, replicas, eventually manual shardingMore contexts and nodes; contexts are independent
Blast radiusOne outage or breach reaches every tenantOne context
What you seal and attestEvery tier: services, database, replicas, backupsOne node image

Inside every node

  1. 01FrontendYou writeYour web UI, shipped inside the signed bundle
  2. 02Application logicYou writeYour code, in Rust
  3. 03RuntimeBuilt inWebAssembly sandbox
  4. 04State and syncBuilt inShared state that merges across nodes on its own
  5. 05StorageBuilt inEncrypted at rest
  6. 06NetworkingBuilt inEncrypted node-to-node connections
  7. 07Identity and accessBuilt inMembers, permissions, keys
  8. 08Sealed hardwareBuilt inIntel TDX attestation on Calimero Cloud

One deployable. Every layer included. Nothing to wire.

04 · Upgrades

Ship once. Nothing to re-attest.

A node's measurements cover the node image, not the apps on it. Publish one signed bundle and one operation upgrades the app on every node.

  • App upgrades don't change node measurements or keys.
  • No new policies and no secrets to move.
  • Each context migrates its own data the next time it is used.
Release v2one operation
  • Publish signed app bundle v2logic and frontend together
  • One upgrade operation for the groupour cloud and your nodes
  • Each context migrates on first usethe same result on every node

Node image, measurements and keys unchanged

Compare with microservices in TEEsShow less

In TEEs every microservice release is a security change; a Calimero app release is not

Microservices inside TEEsper release

Calimeroper release

  • Offline nodes catch up one version at a time
  • Writes from older nodes are held, then replayed
What a release takes
QuestionMicroservices / self-hostedCalimero
Unit of releaseEach service, and each customer installOne signed bundle: logic and frontend together
RolloutYour ops team, then each on-prem customerOne upgrade operation for the whole group
Data migrationCentral database migration, often a maintenance windowPer context, on first use, the same result on every node
Mixed versionsAPI compatibility code, feature flagsWrites from older nodes held and replayed; offline nodes replay versions in order
Attestation and keysNew measurements, policies and secrets per releaseUnchanged by app upgrades

05 · Why not DIY

Why not just put your stack in a TEE?

A confidential VM protects one machine. Your app is ten.

Put microservices, a database and a queue into enclaves and every part needs its own attested image, every hop needs attested encryption, and your disks, backups and TLS proxy still sit outside.

  • One attested node instead of an image per service.
  • Sealed transport end to end, not TLS at a proxy.
  • Keys, replication and upgrades built in, not built by you.
See the full comparisonShow less

One attested node replaces a stack of enclaves, proxies and keys

DIY: microservices and a database in TEEs5 TEE images

Each box is its own image to measure and attest.

Dashed red: data readable outside the enclave.

Calimero: one attested node1 image

Side by side
QuestionDIY: microservices + database in TEEsCalimero
What gets attestedEvery service, database, proxy and sidecar separatelyOne read-only node image; the quote can also bind your app's code hash
Traffic inTLS ends at a proxy outside the enclaveSealed transport: encrypted end to end to a key the hardware quote vouches for
Data at restVolume encryption and key release you buildStorage keys released only to nodes matching the signed release policy
ReplicationDatabase replicas, failover, consensus per enclaveBuilt in: state syncs as signed operations that converge, no leader
New replicasProvision, attest, hand over secrets by handAttested nodes admit themselves when they match the group's policy
Who reads whatDatabase roles under one adminGroup keys and capabilities enforced by every node
On-premRebuild and run the whole stack per customerSame app bundle on any Calimero node

Calimero is not lift-and-shift: you write the app's logic against the Calimero SDK. You write the logic; we bring the stack.

Your customers want control. You want to ship.

Start on Calimero Cloud, or build on the open-source runtime.