Sending an email is easy. Knowing what happened to it afterwards is the product. This is the admin surface for a mailing platform: what went out, who it reached, and what became of it.
The problem
Delivery is not a yes or no. A message is queued, then sent, then accepted, then opened. Or it bounces, or it quietly lands in spam. A dashboard that flattens that into sent or failed looks authoritative while hiding the state the operator needs.
What I built
A React and Tailwind CSS admin front end against the platform API.
- Campaign and message views, so a send can be read as a whole or one recipient at a time.
- Per-message delivery state rather than a single aggregate status.
- One visual language for delivered, pending and failed, used on every screen.
- Lists built for scanning, since the job is finding the few records that went wrong.
Making failure visible
Every dashboard screenshot shows a healthy send. The version that matters is the one where a third of recipients bounced and the operator has ten seconds to tell whether that is a bad list or a broken configuration. So failures surface in the summary, not as a colour on a row you have to scroll to find.
