Records panel
Email infrastructure with a control panel: one domain receives on any address, each message classifies itself, and the team administers all of it from a single screen. Private client project.
The problem
The team was tracking everything in spreadsheets and loose mailboxes. Every new address had to be created by hand, and finding out what arrived where meant opening mailbox after mailbox. It didn't scale, and things fell through.
What I built
- Catch-all domain. Any address on the domain receives. The first time mail arrives at an address, that address registers itself as a record. Nothing has to be provisioned in advance.
- Ingestion and extraction. Mail comes in over IMAP and an extractor pulls the fields out of the body and identifies which platform it came from, against a seeded catalog.
- Multi-tenant panel. The team sees every record and attaches its final information to each one.
- Row-level isolation. 6 tables, RLS active on all of them, 13 policies and 5 triggers, so each user sees only their own rows — enforced by the database, not by the application.
How I verified it
In an ingestion system, the happy path isn't what breaks. What breaks is the duplicate message, the format that changed, and the one that arrives twice because of a retry.
- 7 trigger and idempotency smoke tests, running against the real database, not a local copy.
- 24 extractor tests.
- Mailbox connection measured from an edge function: 530 ms round trip.
In the project documentation every component is marked
verified, plausible or unverified.
If something was tested against synthetic data rather than the client's real data, it says so.
I'd rather hand over an honest status than a dashboard that's all green and doesn't survive
its first week in production.
Stack
| Component | Technology |
|---|---|
| Database | Supabase — 6 tables, RLS, triggers |
| Ingestion | Edge Functions + IMAP |
| Zoho Mail with catch-all | |
| Panel | Next.js |