All companies
MTHR—02 Building

The vault attorneys hand to their clients.

Legal tech · Estate planning

An estate plan is worthless if nobody can find it. Trustfecta gives an attorney a branded, encrypted vault to deliver the finished plan into — wills, trusts, deeds, the whole binder — so the documents are sealed, versioned and actually reachable on the day the family needs them.

Sold to
Estate-planning firms, delivered to their clients
Encryption
Per-file AES-256-GCM under an app-held master key
Stack
Next.js 16 App Router · Supabase · Vercel
A family — the people an estate plan is actually for
The product is a vault. The customer is a law firm. The point is the family.

Why it exists

Estate planning ends with a PDF emailed to a client, or a binder in a drawer. Years later somebody dies and the family is left guessing which draft was final, whether the deed was ever recorded, and which of three law firms holds the original.

Trustfecta closes that gap without asking the client to trust a consumer cloud drive with the most sensitive documents they own. The attorney uploads once; the client always has it; and the encryption is designed so that a breach of the database and the file storage together still doesn't decrypt a single document.

How the encryption works

Every document is sealed with its own AES-256-GCM data key. That key is then wrapped by a master key that lives only in the application environment — deliberately not in the database, and not with the storage provider. Crypto material sits in its own table reachable only by the service role, and every file carries a SHA-256 integrity check.

This is recoverable, not zero-knowledge, and that's a deliberate call: the server can decrypt, which is the only way a client who forgets a password doesn't lose the family trust forever. The trade-off is handled at the authorization layer instead.

  • Client — the trust ownerCan read and download their own documents. That's the only role that ever sees contents.
  • AttorneyUploads and organizes, but is metadata-only — the firm cannot read the file contents back out.
  • AdminAlso metadata-only. The download route returns a hard 403 for admins, including while previewing a client's portal.
Sealed per file, wrapped by a key the database has never seen.

What's built

Client portalDocuments, beneficiaries, secure messaging with the firm, periodic check-in, annual review and billing
Attorney portalClient roster and per-client view, firm management, messaging, client activation, plus a public application flow for new firms
AdminUsers, attorneys, firm portals and document oversight — metadata only, with a view-as preview that still can't open a file
FrameworkNext.js 16 App Router on Vercel; optimistic route gating in proxy.ts, real authorization server-side on every request
DataSupabase — Postgres, Auth and a private vault storage bucket, with row-level security on every table across thirteen migrations
Key isolationCrypto material lives in its own document_keys table, reachable by the service role only
AuditAppend-only log on every sensitive action; profile self-updates restricted to the name field so a role can't escalate itself
IntegritySHA-256 checked on decrypt, so a tampered file fails loudly instead of quietly

Where it is now

  • DoneEncryption core and storage Envelope encryption, integrity checks, private bucket, service-role isolation of key material.
  • DoneSchema, roles and RLS Thirteen migrations covering the data model, the role matrix, notifications, messaging, the audit log and client activation.
  • DoneDocument flows and the three live portals Upload-and-encrypt, server-side decrypt-and-stream, and the client, attorney and admin surfaces with role routing off a single login.
  • Next — the coreThe dead man's switch Check-ins escalating to a trigger, and the beneficiary side that turns on when it fires: enrolment, trigger-time access and watermarked downloads. Schema is in; behaviour isn't built.
  • NextInvitations, billing and email Tokenized attorney-to-client invites and bulk import; Stripe subscriptions and Resend delivery are scaffolded but inert until the keys are wired.
  • NextPre-launch hardening Error monitoring, rate limiting, attorney MFA and an external penetration test.
Two things stated plainly. First, no real client documents go into this until bar-ethics counsel has cleared the model and the entity, insurance and terms are in place — an encrypted vault for legal documents is not a thing you soft-launch. Second, the master key is held outside Supabase and must be identical across environments: backed up properly it's the reason the vault is safe; lost, every sealed document is unrecoverable. Key custody is part of the product, not an afterthought.