arrow_backDéveloppeurs
architecture

Comment c'est construit

Aperçu de l'architecture

Une carte de haut niveau du codebase Keeplas : un monorepo Turborepo avec une application Next.js, un backend Convex et un package crypto isolé et restreint.

Structure du monorepo

Keeplas est un monorepo pnpm + Turborepo. La surface déployée est une unique application Next.js ; tout ce qui est sensible est isolé dans son propre package.

  • check_circleapps/web -- application Next.js 16 App Router (la seule surface déployée)
  • check_circlepackages/convex -- schéma, requêtes, mutations, actions et crons Convex
  • check_circlepackages/crypto -- primitives zero-knowledge (RESTREINT, protégé par CODEOWNER)
  • check_circlepackages/ui -- système de design shadcn / Radix partagé

La frontière crypto

Tout ce qui se trouve dans packages/crypto s'exécute uniquement dans le navigateur. Convex ne voit jamais votre phrase de récupération de 24 mots, votre clé maître ni les fragments Shamir bruts. Le serveur ne stocke que du texte chiffré AES-256-GCM, des clés enveloppées en ML-KEM-768 et des fragments enveloppés en ML-KEM-768. Le modèle de menace : même un backend totalement compromis ne peut pas lire le contenu des utilisateurs.

L'enveloppe d'audit

Chaque mutation qui touche votre Vault transporte une enveloppe d'audit signée. Le middleware Next.js applique un HMAC au contexte de la requête (IP, pays) avec un secret partagé ; Convex le revérifie et ajoute une entrée chaînée par hachage et infalsifiable au journal d'audit.

Authentification

L'authentification est sans mot de passe, bâtie sur Convex Auth : codes à usage unique par e-mail et WhatsApp, avec passkeys optionnels (WebAuthn) et TOTP. Le déverrouillage par appareil utilise un PIN, la biométrie ou une clé matérielle. Aucun mot de passe à divulguer ou à réinitialiser.

Lisez le code source

L'architecture complète et le protocole cryptographique se trouvent dans la documentation du dépôt.