How do we actually keep your data yours?
Everyone encrypts. WeTransfer encrypts. Dropbox encrypts. Your email encrypts. And yet, when you press on who holds the key, where the plaintext lives, and who can read along under a court order, it usually gets quiet.
This page sets out plainly what we encrypt, with which algorithms, who can read it, and why that still holds in ten years. A little more technical than the rest of the site. No fog.
Last reviewed: October 21, 2026
Four principles
The rest of this page walks through what we do, in what order, and with which ingredients. The ideas underneath fit on four cards.
End-to-end encryption
You address a sealed envelope. The courier carries it across. On the way, the envelope doesn't open, not even by the courier. We're the courier. As far as we're concerned, your file is an inscrutable smear of bytes.
Encrypted in your browser. Decrypted in the recipient's browser. Our servers only ever store ciphertext.
Zero-knowledge
Picture a vault building. We built it, we keep the walls standing. But the key to your locker? We never had it. No spare, no master copy, no 'we can request one at reception'. Not because we're virtuous, because, technically, we never receive it.
We can never decrypt your data. Not under duress. Not under a court order. We don't have the key, there's nothing to hand over.
Post-quantum safe
The lock that's safe today might be a wet paper bag in ten years. Quantum computers are coming, slowly but surely, and whatever they'll crack tomorrow, attackers can already record today and decrypt 'later'. So we use locks that hold now and later. Two per door, just to be sure.
Hybrid X25519 + ML-KEM-768 for key exchange. Hybrid Ed25519 + ML-DSA-65 for signatures. Classical and post-quantum, side by side.
2-of-3 key custody
One key you can lose is a disaster. One key you can hand over is also a disaster. So we split it three ways: a share on our server, a share on your device, a share that only your recovery phrase can open. Any two of them open the door. We alone can't open anything. You lose one of the three and you're still in.
Three shares, any two open the door. We hold one. Your device holds one. Your recovery phrase opens the third.
What we don't have
Some products mostly explain what they do. Here, first, what we explicitly don't do, and, more importantly, can't.
NO backdoor
no hidden side door for 'staff with access', and none for law enforcement either
NO master key
no key that opens every locker, it doesn't exist, and can't
NO data-recovery email
we can reset your password, not your encrypted data. Lose two of your three shares and the data is gone for everyone, including us.
NO plaintext logs
the server never logs what's inside your files, it can't even read them
NO AI-scanning on your data
not by us, not by third parties, ever
NO US data paths
no US cloud hosting, so no CLOUD Act exposure. The one outside call is the malware check: a file's hash, never its contents (see what we can and can't see, below)
These aren't policies we can flip. These are design choices. We didn't 'lose' the master key, we never made one.
How we build it
Cryptography is mathematics. But the software running that mathematics has to be built just as carefully, otherwise the chance of error sneaks back in via a buffer overflow or a race condition. The choices below are aimed squarely at that.
The server, the cryptography libraries, and the browser version of those libraries are all written in Rust. Not because it's hip, but because Rust makes an entire class of bugs impossible: buffer overflows, use-after-free, data races. Exactly the categories the overwhelming majority of high-impact security CVEs start in.
The type system enforces design choices. If a key has to be in a particular state, then the wrong state is literally unrepresentable, not 'unlikely', not 'documented', but impossible. In our own code, unsafe is switched off at the compiler level rather than discouraged by policy. The libraries underneath do contain some, as any cryptography or WebAssembly stack does; we keep that set small, pinned and audited.
And: the same Rust code runs in the server and in your browser, via WebAssembly. One source of truth for all cryptography. No 'browser encryption vs. server encryption' divergence that might quietly drift apart under pressure.
How we think
Code is, in the end, the residue of thought. How we think determines how the code behaves, under pressure, after three years, in the hands of someone who wasn't there when it was written.
For us, engineering is a way of thinking. A way of talking about correctness where you don't hope something works, you show that it works. The wrong state of a key, then, shouldn't be 'caught by a PR review'; it should be unrepresentable in the type system itself.
Our background is in functional and type-driven languages, Haskell, Agda, Lean. Languages where you learn to use your type system as a proof assistant rather than a syntax checker. We bring that intuition to Rust, to TypeScript, to every line we write.
But correctness in a single moment isn't enough. Code that's right today and unreadable in two years is still broken. Maintainability isn't a separate quadrant, it's the long-term form of correctness. We write code that's still readable in a few years, by someone who wasn't there when it was written. That principle carries through to how we use our tools.
AI fits into that story, used well. A fine tool to think with, tinker with, iterate ideas with. A good sparring partner when you know what you're asking and what you're getting back.
But we don't want our codebase sliding into slop. So we put it under firm guard rails: it works inside our type systems, our language choices, our principles. It proposes; we decide. An extension, not a replacement.
Everything runs in the EU
The server itself, the block storage, the database, the cache, all of it runs on infrastructure inside the European Union. Operated by Full Join B.V., based in Eindhoven. Subject to Dutch law and the GDPR.
We deliberately don't run on US hyperscalers. Not for dogmatic reasons, but because the US CLOUD Act compels US-owned companies to hand over data to US authorities, regardless of where the servers physically sit. We don't fall under it.
Our cryptographic choices follow NIST standards and EU preferences. ENISA and the European PQC roadmap recommend that organisations start their transition to post-quantum cryptography by the end of 2026 and complete it for high-risk systems by 2030. We already have: our hybrid choice (see the stack) has been in place since early 2026.
Should the global standard shift further, we shift with it. Our stack is deliberately crypto-agile: primitives sit behind trait boundaries, so a new one can slot in without dragging half the codebase along.
For the full list of standards Databeamer aligns with, NTA 7516, NEN 7510, ISO 27001, and others, see the compliance page.
Last reviewed: October 21, 2026