Stack & Signal logo

Stack & Signal

Archives
Subscribe
January 19, 2026

I Built an Email Deliverability Tool Nobody Asked For

Introducing SendReady, my free tool for checking email deliverability attributes like SPF, DKIM, and DMARC records.

A few years ago, I was knee-deep in a marketing tech stack migration when someone from IT pinged me: “Hey, did you update the SPF record for that new tool?”

I… had not.

Cue the frantic DNS lookup, the realization that we were one include: statement away from hitting the 10-lookup limit, and the growing suspicion that nobody actually knew if our DMARC was configured correctly. We patched it together, moved on, and I made a mental note: someone should build a simple tool for this.

That someone turned out to be me. Several years later.

Meet SendReady

SendReady is a free email deliverability checker I built to validate the stuff that breaks email delivery: SPF, DKIM, DMARC records, and the one-click unsubscribe headers that Gmail and Yahoo now require.

Is it needed? Honestly, probably not. There are plenty of tools out there. But I built it anyway.

Why Build Something That Already Exists?

Three reasons:

1. I wanted to see if I could.

I started this project ages ago, got 60% of the way there, and abandoned it like every other side project in my graveyard of half-finished ideas. When Claude Code came along, I decided to dust it off and see what was possible. Turns out, a lot.

2. It would have been useful at a previous job.

At a past company, every time we added a new tool to the martech stack, someone had to manually check if we’d broken email authentication. Usually that “someone” was me, usually at 4pm on a Friday, usually after emails had already started bouncing. A simple spot-check tool would have saved some headaches.

3. Why not?

Yes, I know MXToolbox exists. And Mail-Tester. And Learndmarc. And dmarcian, EasyDMARC, DMARCLY, Google Postmaster Tools, and roughly forty-seven other options. But adding one more free tool to the internet felt like a reasonable use of my evenings. The journey was the destination, or whatever.

Try SendReady

What SendReady Actually Does

It checks four things:

  • SPF – Is your Sender Policy Framework record valid? Are you approaching the 10-lookup limit?

  • DKIM – Is your DomainKeys Identified Mail signature set up correctly?

  • DMARC – Do you have a DMARC policy, and is it actually enforcing anything?

  • Email Headers – Are your one-click unsubscribe headers present and properly formatted?

You can punch in a domain to check the DNS records, paste in email headers to validate them, and copy the results to share with your team or save for documentation.

That’s it. Just a tool that does a thing.

What About My Data?

Nothing is stored.

When you check a domain, SendReady does a DNS lookup, parses the results, and shows them to you. When you close the tab, that’s it! There’s no database saving your queries, no history of what you checked, no profile being built.

Same with header validation. Paste in your email headers, get the results, and when you leave, the data goes with you. I’m not logging the domains you check or the headers you paste. There’s no backend collecting anything.

The only analytics running is Netlify Analytics, which is server-side and doesn’t use cookies or track individual users. I can see aggregate page views but not who you are or what you checked.

I built it this way on purpose. DNS records are public anyway (anyone can look them up). And I didn’t want to deal with the complexity (or responsibility) of storing user data. So I just… didn’t.

Why Does This Stuff Matter?

If you send marketing emails—or really any bulk email—authentication records are table stakes now.

In February 2024, Gmail and Yahoo dropped the hammer on bulk senders. The new rules:

  • DMARC required – If you send more than 5,000 emails per day, you need a published DMARC policy.

  • One-click unsubscribe – Your emails must include List-Unsubscribe and List-Unsubscribe-Post headers that work with a single action.

  • Spam rate threshold – Keep your reported spam rate below 0.3%, or your emails start getting rejected.

Microsoft followed suit in May 2025, starting to outright reject (not just junk) non-compliant emails.

For most companies with a simple tech stack, this is a “set it once and forget it” situation. But if you’re managing multiple sending platforms (HubSpot, Salesforce, SendGrid, Mailchimp, that one-off transactional email service your engineering team spun up three years ago) things get complicated. Every new tool needs an include: in your SPF record. Every vendor change risks breaking DKIM. And DMARC? Most people set it to p=none and never look at it again.

SendReady won’t solve all your problems, but it’ll at least tell you if something’s broken.

How It Works Under the Hood

If you’re curious about the actual mechanics: it’s simpler than you might think.

SPF, DKIM, and DMARC are just DNS records. They’re TXT records sitting in public DNS that anyone can query. When you enter a domain, SendReady runs DNS lookups using Node.js’s built-in dns module:

  • SPF lives at the root domain. The tool looks up the TXT record and parses it—checking that it starts with v=spf1, counting how many DNS lookups are chained together (you’re limited to 10), and flagging if you’re using a permissive +all instead of -all or ~all.

  • DKIM lives at selector._domainkey.yourdomain.com. The tricky part is that the “selector” varies by email provider—Google uses google, HubSpot uses hubspot, others use s1, selector1, etc. SendReady checks the common ones.

  • DMARC lives at _dmarc.yourdomain.com. The tool parses the policy (p=none, p=quarantine, or p=reject) and checks if you’ve set up a reporting address.

For header validation, it’s even simpler—just string parsing. You paste in raw email headers, and the tool looks for List-Unsubscribe and List-Unsubscribe-Post headers, then checks if they’re formatted correctly for one-click unsubscribe compliance.

No external APIs. No third-party services. Just querying the public DNS infrastructure that already exists and parsing text. The internet already has all this information—SendReady just makes it easier to read.

The Tech Stack

For anyone curious about how it’s built:

  • Framework: Next.js 16.1.1 with Turbopack

  • Language: TypeScript

  • UI: React 19.2.3 with Tailwind CSS 4

  • Components: Radix UI (Dialog, Tabs, Labels, etc.)

  • Icons: Lucide React

  • Forms: React Hook Form + Zod validation

  • Toasts: Sonner

  • Analytics: Netlify Analytics (server-side, no cookies)

  • DNS lookups: Node.js dns module

The DNS checking logic is custom—just standard TXT record lookups and parsing. Nothing fancy, but it works.

The Claude Code Factor

I over-engineered this thing when I first tried building it. The original version had features nobody needed, architectural decisions that made no sense, and enough technical debt to fund a small startup.

When I picked it back up with Claude Code, there wasn’t anything I would call a technical breakthrough. It was realizing I’d been building for some imaginary perfect use case instead of just… shipping something useful. Claude helped me strip out the complexity, add features that actually mattered (like the header validation), and push it way past the finish line I’d been staring at for years.

Is the code perfect? No. Does the tool solve a problem well enough to share? Yes. That’s the bar I was going for.

How to Use It

Pretty simple:

  1. Domain Checker – Enter a domain to check SPF, DKIM, and DMARC records. You’ll get a pass/fail status with details on what’s configured (or misconfigured).

  2. Header Validator – Paste raw email headers to check if your one-click unsubscribe setup is compliant.

  3. Copy Results – Hit the copy button to grab the results for documentation, a Slack message, or a ticket to your IT team explaining why their DNS changes broke email again.

Use it when you need it. Hopefully that’s not often.

Try SendReady

🥚?

There might be a few easter eggs in there.


Got thoughts? Complaints? Feature requests? I’d love to hear from you. Drop me a message! I’m always curious what other people are dealing with in the deliverability trenches.

And if you’re staring at a broken SPF record at 4pm on a Friday, I hope this tool saves you a few minutes.

stackandsignal.com

Don't miss what's next. Subscribe to Stack & Signal:
Share this email:
Share on LinkedIn Share on Reddit Share on Mastodon Share on Bluesky
Mastodon
Powered by Buttondown, the easiest way to start and grow your newsletter.