Case study / Security engineering

Cynvara

A zero-knowledge encrypted workspace for passwords, files, developer credentials, and organization secrets.

Cynvara encrypted workspace product previewProject / cynvaraLive preview
Cynvara introduces a unified encrypted workspace for personal, developer, and organization secrets.Feature-complete personal vault progressing through production-readiness gates
01 / Problem

The problem and product context.

Passwords, API keys, recovery codes, banking details, and identity documents are often scattered across browsers, notes, chats, and environment files. This increases the risk of accidental leakage, weak access control, and unnecessary trust in third parties.

Cynvara is a zero-knowledge encrypted vault. Sensitive data is encrypted on the user's device, while the server stores protected ciphertext without plaintext or decrypt-capable keys.

Target users
  • Privacy-conscious individuals
  • Developers handling API keys, SSH keys, and environment secrets
  • Cybersecurity professionals
  • Researchers and students
  • Future teams and enterprises requiring controlled secret sharing, RBAC, audit logs, SSO, and SCIM
02 / Contribution

What I contributed.

Lead Developer and Product/Security Architecture Contributor

I worked across product architecture, trust boundaries, security flows, backend integration, and interface implementation rather than contributing only to the frontend.

  1. 01

    Defined the zero-knowledge product architecture and trust boundaries.

  2. 02

    Built React-based personal vault and organization/project workspace interfaces.

  3. 03

    Implemented login, registration, MFA, vault unlock, and remembered-session flows.

  4. 04

    Developed workflows for passwords, secure notes, files, developer credentials, and environment variables.

  5. 05

    Integrated client-side key derivation, encryption, and encrypted sharing flows.

  6. 06

    Implemented organization, membership, project, RBAC, and tenant-aware APIs.

  7. 07

    Built step-up authentication, device/session management, and audit interfaces.

  8. 08

    Worked on PostgreSQL migrations, Docker environments, and Vercel/serverless configuration.

  9. 09

    Maintained security requirements, architecture decisions, threat models, and release evidence.

  10. 10

    Implemented UX consistency, route-level code splitting, and centralized application content.

Repository commits128
My commits108Approximately 84% of repository commits
Second contributor20 commits
03 / Architecture

How the system is shaped.

01

Frontend

  • React 18, TypeScript, Vite, and React Router
  • Tailwind CSS
  • React Hook Form and Zod
  • Web Crypto API
  • hash-wasm for Argon2id
02

Backend

  • Node.js with TypeScript
  • Modular-monolith service architecture
  • PostgreSQL
  • Prisma schema and migration tooling
  • Explicit storage, security, and notification contracts
03

Security architecture

  • Zero-knowledge custody model
  • Argon2id-based master-password key derivation
  • AES-256-GCM authenticated encryption with a random nonce for every operation
  • Account, item, and object identity bound through additional authenticated data
  • Separate authentication and vault-decryption keys
  • Vault Master Key stored on the server only in wrapped form
  • TOTP multi-factor authentication and HttpOnly remembered-session cookies
  • Step-up authentication for sensitive operations
  • Tamper-evident audit logs using hash chaining
  • Tenant isolation through application authorization and PostgreSQL controls
04

Infrastructure and integrations

  • npm workspaces monorepo with separate client, service, and reusable contract packages
  • Docker Compose for PostgreSQL and production-like verification
  • Vercel/serverless build configuration
  • Brevo transactional email integration
  • Razorpay billing integration
  • Edition flags separating Personal V1 and V2 functionality
04 / Decisions

Challenges and engineering decisions.

01

Zero knowledge versus convenient recovery

If the platform can recover a vault, it may theoretically possess enough capability to decrypt it.

Decision

Reject operator-controlled recovery and use recovery material held by the user.

02

Authentication versus vault unlock

A successful account login should not automatically expose encrypted vault contents.

Decision

Let the server verify account authentication while deriving vault-unlock keys from the master password on the client.

03

Secure team sharing

The server cannot receive shared plaintext or a broadly usable shared decryption key.

Decision

Use per-user public keys, encrypted item keys, and sharing epochs so revocation can remove future access.

04

Multi-tenant isolation

Hiding organization features in the interface is not an authorization boundary.

Decision

Verify organization context, membership, roles, project ancestry, and data access server-side, supported by cross-tenant substitution tests.

05

Payment scripts and vault exposure

Loading a third-party checkout script while a vault is unlocked increases exposure risk.

Decision

Lock the vault before checkout and verify payment results against provider data on the server.

06

V1 and V2 scope management

Personal and organization-focused editions share a codebase but have different production requirements.

Decision

Keep edition boundaries explicit and disable V2 by default until its required database profile and configuration are available.

07

Security versus performance

Organization, billing, and administration code should not inflate the initial personal-vault load.

Decision

Use route-level lazy loading and separate chunks for advanced features.

05 / Outcome

Current outcome.

Personal V1 is feature-complete and locally verified, while the advanced organization and team-security foundation is implemented and progressing through production-readiness gates.

  • Personal vault, files, developer secrets, MFA, recovery, sessions, audit history, import/export, and security settings
  • Organization and project workspaces with encrypted sharing and role-based access control
  • SSO, SCIM, billing, and monitoring foundations
  • Passing TypeScript production build
Verification
  • 34 of 34 client tests passed
  • 99 of 99 service tests passed
  • 133 tests passed in total with zero failures
  • One PostgreSQL-backed integration suite was environment-gated in the latest local verification
  • Retained Docker evidence documents 82 of 82 PostgreSQL-backed V2 integration tests passing

Cynvara should not yet be described as production-ready. External security review, provider staging, accessibility validation, backup/restore rehearsal, and final deployment gates remain outstanding.

Published visual
Cynvara introduces a unified encrypted workspace for personal, developer, and organization secrets.
Welcome pageCynvara introduces a unified encrypted workspace for personal, developer, and organization secrets.