Builder Showdown

DMARC Monitor MVP — Who Built It Best?

Three builders. One spec. Let's see who got the cleanest, fastest, most deployable DMARC analyzer.

Mack — mimo subagent
Claude — mimo subagent
Cursor — CLI agent
You — custom build
The Scorecard
Rating each build on 5 dimensions. 1–5 scale.
Mack
mimo subagent
Design
4/5
Simplicity
5/5
Feature Depth
3/5
Deployability
5/5
Code Quality
4/5
🏆 Best UX
Claude
mimo subagent
Design
5/5
Simplicity
4/5
Feature Depth
4/5
Deployability
4/5
Code Quality
4/5
Cursor
CLI agent
Design
4/5
Simplicity
5/5
Feature Depth
3/5
Deployability
5/5
Code Quality
3/5
Yours
Custom build
Design
Simplicity
Feature Depth
Deployability
Code Quality
Live Demo
Switch between builds — test with github.com, google.com, or amazon.com.
Feature Comparison
What each build does and doesn't do.
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
What's In Your Version
React + TypeScript, using dns.google API — has SPF and MX lookups the others don't.

🧠 The Smartest Stack

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.

React TypeScript dns.google API DMARC SPF MX Cloudflare Pages
// 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
The Verdict
Honest assessment of each builder.

Fastest to Ship

Cursor — 5 minutes, deployed and done. No frills, but it works and it's live. If you need something NOW, this is it.

Best Overall UX

Claude — Score ring, plain-English analysis, quick-check buttons. Most polished experience for a non-technical MSP owner checking their domains.

Best Foundation

Yours — React + SPF + MX in addition to DMARC. Most technically complete. Just needs deployment and a polish pass on the UI.