Encrypted document storage and retrieval-augmented Q&A built for banks and regulated institutions — envelope encryption at rest, phishing-resistant MFA, and inference that runs entirely on self-hosted, open-weight models.
See it in action
Mockup of the real screens, same design system as the running app. Filenames and answers below are fictional demo data, not a real deployment.
Three features, built in sequence
Each feature shipped with its own written spec, implementation plan, data model, and API contract before a line of code was written — the full artifacts are in specs/ in the repo.
Upload a PDF → antivirus scan → envelope encryption with a fresh per-document key wrapped by Vault Transit → encrypted blob on disk. Nothing document-derived is ever stored, or logged, in plaintext.
Read spec.md →Admin-provisioned accounts, password + phishing-resistant MFA (WebAuthn passkeys preferred, TOTP fallback), step-up re-authentication before sensitive actions, lockout, and admin-mediated password reset.
Read spec.md →Ask a plain-language question; the system retrieves your own relevant chunks and grounds a locally-generated, streamed answer in them — with page-level citations naming exactly where each fact came from.
Read spec.md →How this was built
Every feature followed spec-kit's workflow inside Claude Code — a written spec and an implementation plan (checked against this project's own constitution) existed before any code did. Nothing here is a prompt-and-pray prototype.
User stories, requirements, explicit non-goals — agreed before any plan existed.
Architecture, data model, API contract, checked against the project constitution.
A dependency-ordered breakdown, each task small enough to verify on its own.
Live-verified against the real Postgres/Vault/ClamAV/Ollama stack — not just a code read-through.
Architecture
Document-touching inference — embedding and generation both — runs on Ollama, on infrastructure the project controls. No document content, extracted text, or embedding ever crosses a third-party API boundary.
Security & compliance posture
Every feature is checked against a written project constitution before implementation — not aspirational guidelines, structural constraints the schema and code enforce.
Tech stack
A deliberately small surface — one backend, one Postgres database, static frontend files with no build step.