# Vault Desk > Vault Desk is a zero-knowledge, end-to-end-encrypted file vault (Proton Drive–class) for web and mobile, cloud-managed. All cryptography happens on the client; the server only ever stores ciphertext and wrapped keys. The homepage is https://www.vaultdesk.io/. Vault Desk is a pnpm + Turborepo monorepo. The security model is the product: the server is untrusted and never sees plaintext or unwrapped keys. Encryption uses libsodium — Argon2id key derivation, XChaCha20-Poly1305 secretstream for files, X25519 sealed-box key wrapping, and Ed25519 signatures — with OPAQUE for password authentication (the server never learns the password) and a Merkle-log Key Transparency system so a substituted sharing key is detectable. Content moderation for sensitive media runs on-device, because a zero-knowledge server cannot scan ciphertext. Repository layout: - `apps/web/` — full Proton Drive–style UI (Next.js 16, React 19, Tailwind v4); runs against a mock or real backend - `apps/api/` — backend: verified core + NestJS HTTP layer + Drizzle ORM + Cloudflare R2 - `apps/mobile/` — React Native / Expo (stub) - `packages/crypto/` — zero-knowledge crypto core (libsodium), with frozen cross-platform test vectors - `packages/client-core/` — OPAQUE auth, key bootstrap, file upload/download, recovery, and sharing - `packages/transparency/` — Key Transparency Merkle log + signed tree heads - `packages/api-types/` — shared encrypted-metadata DTOs - `packages/ui/` — shared components (stub) ## Documentation - [README](./README.md): Project overview, monorepo layout, what is verified by the 59-test suite, and quickstart commands. - [Threat Model](./Vault-Desk-Threat-Model.md): Who Vault Desk defends against, what it protects and deliberately does not, and how each defense maps to a concrete mechanism. - [Tech Stack Recommendation](./Vault-Desk-Tech-Stack-Recommendation.md): The chosen stack and the reasoning behind each cryptographic and infrastructure choice. - [Trust & Safety](./Vault-Desk-Trust-And-Safety.md): On-device sensitive-media moderation, the fail-closed public-link viewer, the abuse-reporting pipeline, and the CSAM/DSA legal runbook. - [Local Development](./LOCAL-DEV.md): Running the web app against a real backend locally using embedded Postgres (PGlite), with no Docker or accounts. - [Deployment Runbook](./DEPLOYMENT.md): Taking Vault Desk to a real multi-user deployment — managed-cloud (Vercel + Neon + Cloudflare R2) and self-hosted (Docker Compose) paths, plus the pre-launch security checklist. ## Getting started - [package.json](./package.json): Workspace scripts — `pnpm install` (Node >= 22), then `turbo` tasks for `build`, `test`, `typecheck`, `lint`, and `dev`. - Run the verified suites: `pnpm --filter @vaultdesk/crypto test`, `pnpm --filter @vaultdesk/client-core test`, `pnpm --filter @vaultdesk/transparency test`, `pnpm --filter @vaultdesk/api test`. - Run the web client (mock backend by default): `pnpm --filter @vaultdesk/web dev`. Set `NEXT_PUBLIC_API_URL` to point it at a running `@vaultdesk/api`. ## Product - [Vault Desk](https://www.vaultdesk.io/): Marketing homepage — zero-knowledge encrypted cloud storage. - [Vault Desk Drive (app)](https://www.vaultdesk.io/app): The encrypted cloud-storage web app. - [Vault Desk Pass](https://pass.vaultdesk.io): Companion end-to-end-encrypted password manager.