Three builders. One spec. Let's see who got the cleanest, fastest, most deployable DMARC analyzer.
| Feature | Mack | Claude |
Cursor | Yours |
|---|---|---|---|---|
| DMARC tag parsing | ✓ | ✓ Full | ✓ | ✓ |
| SPF + MX lookup | — | — | — | ✓ |
| No-DMARC starter template | ✓ | ✓ | — | — |
| Score / rating system | — | ✓ 0–100 ring | — | — |
| Plain-English analysis | — | ✓ | — | — |
| Quick-check buttons | — | ✓ | — | — |
| Raw DNS record view | ✓ | ✓ | — | — |
| Mobile responsive | ✓ | ✓ | ✓ | — |
| Backend required | No | CF Pages Fn | No | No (dns.google) |
| API key required | No | No | No | No |
| Animations / polish | ✓ | ✓ ring + glow | ✓ | — |
| Build speed | 14 min | 6 min | 5 min | Custom |
You went React + TypeScript and used dns.google instead of Cloudflare DoH. More robust, better caching, and you added SPF + MX record checks alongside DMARC — the others missed these.
This is the most complete email-auth checker of the four. Worth deploying properly.
// DMARC + SPF + MX — your complete email auth checker
async function getDMARCRecord(domain) {
const data = await fetchDNS(`_dmarc.${domain}`, "TXT");
const answers = data.Answer || [];
return answers.map(a => a.data.replace(/"/g, ""))
.find(d => d.startsWith("v=DMARC1")) || null;
}
async function getSPFRecord(domain) {
const data = await fetchDNS(domain, "TXT");
const answers = data.Answer || [];
return answers.map(a => a.data.replace(/"/g, ""))
.find(d => d.startsWith("v=spf1")) || null;
}
async function getMXRecords(domain) {
const data = await fetchDNS(domain, "MX");
return (data.Answer || []).map(a => a.data);
}
// Your API: dns.google (more reliable than cloudflare-dns.com)
// Your advantage: one tool checks ALL three email security records
Cursor — 5 minutes, deployed and done. No frills, but it works and it's live. If you need something NOW, this is it.
Claude — Score ring, plain-English analysis, quick-check buttons. Most polished experience for a non-technical MSP owner checking their domains.
Yours — React + SPF + MX in addition to DMARC. Most technically complete. Just needs deployment and a polish pass on the UI.