A browser-only tool for inspecting DMARC aggregate (rua) XML reports. No backend, no data leaves your machine.
- Upload — drag-and-drop or pick multiple
.xmland.zipfiles at once; ZIPs are decompressed in-browser (no server) - Summary dashboard — total messages, pass rate with progress bar, date range, unique IPs, reporter count
- Sending infrastructure detection — infers sender from DKIM selectors (Google Workspace, Amazon SES, Resend, Brevo, Postmark, Mailgun, HubSpot, and more)
- Records table — sortable by any column, filterable by result / reporter / free-text search, paginated
- Row colour-coding — green for full pass, yellow for partial, red for any failure or non-
nonedisposition - Failure detail panel — full
auth_resultsbreakdown per failing record including DKIM selector, SPF scope, and applied policy
npm install
npm run devOpen http://localhost:3000.
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| ZIP decompression | Native DecompressionStream API |
| XML parsing | Native DOMParser |
| Dependencies | None beyond Next.js |
src/
├── app/ # Next.js App Router
├── components/
│ ├── ui/ # DropZone, StatCard, Badge, Toast
│ └── features/ # Analyser, SummaryDashboard, RecordsTable, FailurePanel
└── lib/
├── parse.ts # XML parser + provider/infra detection
├── zip.ts # In-browser ZIP reader
└── types.ts # Shared TypeScript types
All parsing happens in the browser. No XML content, IP addresses, or report data is ever sent to a server.
MIT
