llms.txt
# 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.