Technical challenges
Emails must not be lost or sent twice; other users should see changes without reloading.
How I approached it
Emails are written to an outbox in the same transaction and sent by a worker; live updates use server-sent events.
Impact
MVP finished and deployed for trial; now being quoted to companies.