Work
Client onboarding
Case intake and client onboarding, in seven signed steps.
Next.js · Postgres · Drizzle
- The problem
- Client onboarding for a law firm lived in a scattered form and a mailbox. The data existed but was not usable, and the sector is regulated.
- Constraints
- AML law and GDPR at the same time: an audit trail that cannot be edited, seven-year retention, and a right to erasure that must not erase what the law requires keeping.
- What was built
- A seven-step flow with conditional logic, a hash-chained audit log the database itself refuses to update or delete, Portuguese tax-number and IBAN validation, and a handwritten signature bound to a hash of the whole file.
- What happened after
- In production. The full flow was walked end to end on the live database.