Most collaborative tools — Google Docs, Notion, Confluence — store your documents in plaintext on their servers. The provider can read everything. CryptPad takes a fundamentally different approach: all encryption and decryption happens in your browser, and the server only ever sees ciphertext. This is genuine zero-knowledge collaboration software, not marketing language.
The Zero-Knowledge Model
When you create a document in CryptPad, a cryptographic key is generated in your browser. The document content is encrypted with this key before it is sent to the server. The key is embedded in the URL fragment (the part after #), which browsers do not send to servers. If you share the URL, you share the key. If you do not share the URL, no one else — including the CryptPad server operator — can read the document.
Real-time collaboration works because multiple users with the key can receive the same encrypted patches and decrypt them locally. The server routes encrypted patches between users without understanding them.
What CryptPad cannot protect you from:
- The person you shared the document with
- Malicious JavaScript served by a compromised CryptPad instance
- Metadata like document creation time, access frequency, and file size
For the highest assurance, self-host CryptPad so you control the JavaScript being served.
Available Applications
CryptPad includes a full suite of collaborative tools:
| App | Equivalent |
|---|---|
| Rich Text | Google Docs |
| Spreadsheet | Google Sheets |
| Presentation | Google Slides |
| Code/Markdown | Collaborative code editor |
| Kanban | Trello |
| Whiteboard | Miro |
| Form | Google Forms |
| Poll | Doodle |
All are included at no cost on the flagship instance at cryptpad.fr or any community instance.
Account vs Anonymous Use
CryptPad works without an account. Open the site, create a document, and start editing. The document is stored in your browser’s local storage. If you clear your browser data, you lose access — the server has no record of who you are, so there is no account recovery.
Anonymous use is appropriate for:
- One-time documents you need to share quickly
- Situations where even creating an account feels risky
- Temporary collaboration sessions
Account use enables:
- A drive to organize documents
- Persistent access from different devices
- Sharing with registered contacts (encrypted contact list)
- Teams with shared folders
Creating a CryptPad account requires only a username and password — no email address. Your username and password are used to derive your account keys locally. CryptPad never knows your password.
Password strength matters enormously. Since the password derives your encryption keys, a weak password means weak encryption. Use a passphrase of at least four random words or a 20+ character random password stored in a password manager.
CryptPad Teams
CryptPad Teams (available to registered users) creates shared encrypted workspaces:
- Create a team under Drive > Teams.
- Invite team members via their CryptPad public key (exchanged in-app).
- Create or move documents into the team folder.
- Team members access documents encrypted to the team key.
Teams support role-based access: Viewer, Member, and Admin. Admins can add members and change roles. All of this is enforced cryptographically, not by server-side access control.
Self-Hosting CryptPad
Self-hosting is the highest-assurance option because you control the server and the JavaScript. CryptPad is open-source and reasonably straightforward to deploy.
Requirements:
- Node.js 16+
- A reverse proxy (Nginx recommended)
- Two domain names (the main domain and a sandbox domain for isolation)
Basic installation:
git clone https://github.com/cryptpad/cryptpad.git
cd cryptpad
npm install
cp config/config.example.js config/config.js
# Edit config.js with your domain names
node server.js
Nginx configuration (abbreviated):
server {
server_name cryptpad.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
}
server {
server_name sandbox.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
}
}
The sandbox domain is critical. CryptPad runs third-party content (like form responses and code output) in an iframe from the sandbox domain, isolating it from your main session cookies.
Enable HTTPS with Let’s Encrypt:
certbot --nginx -d cryptpad.yourdomain.com -d sandbox.yourdomain.com
After setup, configure storage limits, user registration policies, and email in config/config.js. See the CryptPad admin guide for full documentation.
Sharing Documents Securely
Every CryptPad document has several sharing modes:
- View — Recipients can read but not edit
- Edit — Full editing access
- Request edit access — Recipients can request elevated access from the owner
When sharing, CryptPad generates a link with the appropriate key embedded. For sensitive documents, use the password protection option — this encrypts the document key with an additional password that you share separately from the link.
For team sharing, add documents to a Team folder rather than sharing individual links.
CryptPad vs Google Docs for Privacy
| Feature | CryptPad | Google Docs |
|---|---|---|
| Server reads content | No | Yes |
| Account email required | No | Yes |
| Collaborative editing | Yes | Yes |
| Offline access | Limited | Yes (with app) |
| Mobile app | No (browser-based) | Yes |
| Version history | Yes | Yes |
| Cost | Free (self-host) / Free tier | Free |
| Data used for ads | No | Yes |
CryptPad’s main limitation compared to Google Docs is the mobile experience — there is no native app, and editing on mobile browsers is workable but not ideal. For desktop collaboration where privacy matters, CryptPad is the clear choice.
CryptPad is maintained by XWiki SAS and funded by grants from NLnet, the French government’s open-source programs, and user donations. It is one of the most technically sound privacy-respecting collaboration tools available, and the self-hosted option makes it suitable for organizations with strict data control requirements.