{"id":51192939,"url":"https://github.com/resend/resend-dmarc-analyzer","last_synced_at":"2026-06-27T17:30:28.620Z","repository":{"id":343734266,"uuid":"1149269774","full_name":"resend/resend-dmarc-analyzer","owner":"resend","description":"A ready-to-deploy repo to analyze DMARC reports and/or get a beautiful emails with your reports analyzed","archived":false,"fork":false,"pushed_at":"2026-05-27T13:57:45.000Z","size":1003,"stargazers_count":29,"open_issues_count":1,"forks_count":9,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T15:28:12.313Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://resend-dmarc-analyzer.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/resend.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-03T23:20:38.000Z","updated_at":"2026-05-27T13:58:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/resend/resend-dmarc-analyzer","commit_stats":null,"previous_names":["resend/resend-dmarc-analyzer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/resend/resend-dmarc-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resend%2Fresend-dmarc-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resend%2Fresend-dmarc-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resend%2Fresend-dmarc-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resend%2Fresend-dmarc-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/resend","download_url":"https://codeload.github.com/resend/resend-dmarc-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resend%2Fresend-dmarc-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34862627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-27T17:30:27.882Z","updated_at":"2026-06-27T17:30:28.602Z","avatar_url":"https://github.com/resend.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DMARC Analyzer\n\nA Next.js application to analyze DMARC aggregate reports (RUA) and forensic reports (RUF). Receives reports via Resend Inbound webhooks and provides a web interface for manual analysis.\n\n## Features\n\n- Parse DMARC aggregate reports (RUA) from XML\n- Handle compressed attachments (.xml.gz, .zip)\n- Webhook endpoints for Resend Inbound\n- React Email template for report digests\n- Web interface for paste-and-analyze\n\n## Project Structure\n\n```\nsrc/\n├── app/\n│   ├── api/\n│   │   ├── analyze/route.ts          # POST endpoint for frontend parsing\n│   │   └── webhooks/dmarc/\n│   │       ├── rua/route.ts          # Aggregate report webhook\n│   │       └── ruf/route.ts          # Forensic report webhook (pass-through)\n│   ├── page.tsx                      # Paste-and-analyze frontend\n│   ├── layout.tsx                    # App layout\n│   └── globals.css                   # Resend-style dark theme\n├── components/dmarc/\n│   ├── summary-card.tsx              # Stats card component\n│   ├── status-badge.tsx              # Pass/fail badges\n│   ├── records-table.tsx             # Records table with auth results\n│   └── report-viewer.tsx             # Main report display component\n├── emails/\n│   └── dmarc-report.tsx              # React Email template\n├── lib/\n│   ├── config.ts                     # Environment config\n│   ├── dmarc/\n│   │   ├── parser.ts                 # XML parser \u0026 analysis\n│   │   ├── attachments.ts            # .xml, .gz, .zip extraction\n│   │   └── sample.ts                 # Sample XML for testing\n│   ├── email/\n│   │   └── send-report.ts            # Resend email sender\n│   └── webhook/\n│       └── verify.ts                 # Svix signature verification\n├── types/\n│   └── dmarc.ts                      # TypeScript types\n└── .env.example                      # Environment variables template\n```\n\n## Getting Started\n\n1. Install dependencies:\n\n```bash\npnpm install\n```\n\n2. Copy the environment template and fill in your credentials:\n\n```bash\ncp .env.example .env.local\n```\n\n3. Run the development server:\n\n```bash\npnpm dev\n```\n\n4. Open [http://localhost:3000](http://localhost:3000) to use the analyzer.\n\n## Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `RESEND_API_KEY` | Your Resend API key |\n| `RESEND_WEBHOOK_SECRET` | Webhook signing secret from Resend |\n| `DMARC_RECIPIENT_EMAIL` | Email address to receive report digests |\n| `DMARC_SENDING_DOMAIN` | Verified domain for sending emails |\n\n## Webhook URLs\n\nConfigure these endpoints in your Resend dashboard:\n\n- **RUA (Aggregate Reports)**: `https://your-domain.com/api/webhooks/dmarc/rua`\n- **RUF (Forensic Reports)**: `https://your-domain.com/api/webhooks/dmarc/ruf`\n\nCopy the signing secret from the Resend dashboard and paste it into the `RESEND_WEBHOOK_SECRET` environment variable.\n\n\u003e [!TIP]\n\u003e Webhooks need publicly accessible HTTPS endpoints. To test the webhook in development, use ngrok or a similar service to create a tunnel to your local server. Once you have the public URL, update the webhook URLs to your production domain in the Resend dashboard.\n\n## Scripts\n\n| Script | Description |\n|--------|-------------|\n| `pnpm dev` | Start development server |\n| `pnpm build` | Build for production |\n| `pnpm start` | Start production server |\n| `pnpm lint:fix` | Run linter with auto-fix |\n| `pnpm email` | Preview email templates (port 3003) |\n| `pnpm test:email \u003cemail\u003e` | Send test email with sample data |\n\n## Tech Stack\n\n- [Next.js 16](https://nextjs.org/) - React framework\n- [React 19](https://react.dev/) - UI library\n- [Tailwind CSS 4](https://tailwindcss.com/) - Styling\n- [Resend](https://resend.com/) - Email delivery\n- [React Email](https://react.email/) - Email templates\n- [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) - XML parsing\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresend%2Fresend-dmarc-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fresend%2Fresend-dmarc-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresend%2Fresend-dmarc-analyzer/lists"}