Back to Blog
๐Ÿ“ก
/4 min read/By SMTPfast Team

Live Tail: real-time email event logs in your dashboard

Watch every send, delivery, bounce, open, and click stream into your dashboard in real time. tail -f for email.

productobservabilitydeliverability
Share:๐•in

Email is the most opaque part of every developer's stack

When a payment fails in Stripe, you open the dashboard and see exactly what happened: the request, the network call to the issuer, the decline code, the retry, the webhook delivery โ€” every step, with timing, with cause.

When an email fails, you getโ€ฆ "bounced." Maybe a status badge. Maybe a hint of a reason. You refresh the logs page, hope something changed, and ping support if it didn't.

We think email observability should look more like Stripe and less like a black box. Live Tail is the first piece of that.

What it is

Open /logs, flip the Live toggle, and every email event in your account streams into the page within ~500ms of happening. Like tail -f for your email pipeline.

It works for every event SMTPfast emits:

  • queued โ€” the API accepted your request
  • sending โ€” the worker picked up the job
  • sent โ€” SES accepted the message
  • delivered โ€” the receiving MTA confirmed delivery
  • opened โ€” the recipient opened the message
  • clicked โ€” the recipient clicked a tracked link
  • bounced โ€” the receiving MTA rejected or returned the message
  • complained โ€” the recipient marked the message as spam
  • retrying โ€” a transient failure that the worker will retry
  • failed โ€” all retries exhausted

Filter by event type, search by recipient or subject, and the filter applies server-side. You only receive what you asked for.

How it works under the hood

Three pieces, no new infrastructure:

  1. Every state transition that creates an EmailEvent row in our database also publishes a tiny JSON payload to a per-user Redis pub/sub channel.
  2. The dashboard opens a Server-Sent Events (SSE) connection to a streaming Next.js route.
  3. The route subscribes to your channel, replays the last 60 seconds (so you never stare at an empty screen), then forwards live events as they arrive.

We picked SSE over WebSockets on purpose. The data flow is one-way (server to browser), the protocol is plain HTTP, the browser API (EventSource) auto-reconnects, and it traverses corporate proxies cleanly. A 25-second heartbeat keeps idle connections alive.

If you want to wire it up from your own client, the endpoint is documented at /docs/live-tail.

Why we built this first

We've been thinking about what genuinely separates email tooling, and the answer kept coming back to observability. Most providers โ€” including the big ones โ€” surface email like a server log file from 2010: pages of text, a 5-minute refresh delay, no signal of what changed.

That gap is most of why developers don't trust their email pipeline. They send a campaign, watch their inbox, refresh. They don't see what's happening. They guess.

Live Tail is the first ship of a broader push to make SMTPfast feel like Stripe-quality observability. Coming next:

  • Explain this delivery โ€” a per-email timeline with raw SMTP responses, retry chains, suggested actions, and webhook delivery details
  • Webhook replay โ€” re-fire any past webhook event to your endpoint with one click
  • CLI โ€” npx smtpfast tail from your terminal

Availability

Live Tail is included on the Growth ($19/month) and Scale ($49/month) plans. Free and Starter accounts continue to use the standard paginated logs page.

If you're already on a Growth or Scale plan, the Live toggle is on your /logs page right now. If not, you can upgrade in billing or start a free account and explore the rest of the platform first.

Try it

Send a test email to a tracked address while the Live toggle is on. Watch queued, sending, sent, delivered, opened cascade down the page in seconds. Once you see your pipeline that clearly, going back to refreshing a static logs page feels strange.

Ready to get started?

Start sending transactional email today. Free to start, no credit card required.

Get Started for Free