App Email for the Solo Operator

howto

1. The dedup key IS the idempotency contract (most quotable idea)

2. Email is testable at every layer without a mocking library

Email is notoriously the untested path β€” the send is usually buried in a route handler behind a live API client. Three layers, all real code:

3. Sized for a solo operator β€” the 2am story

4. Failure taxonomy worth stating plainly

Misc smaller bits