← Back to list

I Sent 40,000 Emails That Said “Hi {{first_name}}.” Here’s the Tool That Would Have Caught It.

One character. Forty thousand people. A lesson I didn’t need to learn the hard way.

Zubair Akhtar · 2026-06-21 20:15 · 0 claps · 1.5 min read
#email-development #developer-tools #email-marketing #personalization #saas
Open on Medium ↗
Wiki topics: ECO · Economy · General CRM · Email & CRM

I Sent 40,000 Emails That Said “Hi {{first_name}}.” Here’s the Tool That Would Have Caught It.

One character. Forty thousand people. A lesson I didn’t need to learn the hard way.

I am not a careless developer. Five years building email templates. I test dark mode. I check Outlook. I know what I am doing.

And I still shipped 40,000 emails that opened with “Hi {{ first_name }}.”

One deleted curly brace during a last-minute copy edit. { first_name }} instead of {{ first_name }}. I had previewed the template. Sent myself a test. Checked Gmail. Checked my phone. Everything looked right.

Because preview tools show you the template. Not the output. And my mistake lived in the gap between the two.

The Gap Nobody Talks About

Every preview tool shows you the template. Your ESP sends the output — after substituting every token with real subscriber data. Those are two different things. Litmus, Email on Acid, every tool I tested showed me the first one. None of them showed me the second.

So a broken token, a missing fallback, a name long enough to collapse your hero section on mobile — all invisible in the preview. All live in the send.

What MailViewr Does Differently

Someone in a Slack channel mentioned MailViewr. I went in expecting another standard preview tool. What I found was Payload Preview — you define a JSON test payload and MailViewr substitutes every token before rendering. You see the output, not the template.

{

“first_name”: “Ahmed”,

“first_name”: “”,

“first_name”: “Bartholomew-Krishnamurthy”

}

Switch payloads — happy path, empty field, longest possible name, wrong segment — and see every edge case render before it reaches a real inbox. My broken brace would have shown up in three seconds.

Run These Before Every Personalised Send

✓ Happy path — all tokens populated, reads naturally

✓ Empty first name — fallback renders everywhere

✓ Longest name — layout holds on mobile

✓ Wrong segment — conditional blocks correct

✓ All tokens empty — email readable on fallbacks alone

Hoping is not a QA process. I learned that the hard way.

MailViewr free tier — Gmail, Outlook, Apple Mail, dark mode, no account needed. Payload Preview is Pro at €29/month. I am not affiliated — just a developer who found it after a very bad Tuesday.

Try it at mailviewr.com — paste and go, no signup.


메타데이터
post_id
a1d7a3aeaee1
slug
i-sent-40-000-emails-that-said-hi-first-name-heres-the-tool-that-would-have-caught-it-a1d7a3aeaee1
url
https://medium.com/@zubiakht98/i-sent-40-000-emails-that-said-hi-first-name-heres-the-tool-that-would-have-caught-it-a1d7a3aeaee1
canonical_url
https://medium.com/@zubiakht98/i-sent-40-000-emails-that-said-hi-first-name-heres-the-tool-that-would-have-caught-it-a1d7a3aeaee1
author_url
https://medium.com/@zubiakht98
status
ok
fetched_at
2026-07-25 15:44:25