{"adoption": {"forks": 557, "observed_at": "2026-08-28T04:09:34.449738+00:00", "stars": 6032}, "canonical_url": "https://ross.abutalabs.com/products/maildev", "card": {"archived": false, "artifact_type": "application", "description": ":mailbox: SMTP Server + Web Interface for viewing and testing emails during development.", "domain": ["developer-tools", "email", "testing", "web-development"], "enriched": true, "function": ["http-server", "testing", "developer-tools", "email", "cli", "mcp"], "health_score": 100, "homepage": "https://maildev.github.io/maildev/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["maildev/maildev"], "name": "maildev/maildev", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-26T00:27:49+00:00", "repo": "maildev/maildev", "stars": 6032, "tags": ["smtp-server", "mailcatcher", "email-testing", "fake-smtp", "dev-inbox", "email-preview", "rest-api", "mcp-server", "nodemailer", "email-debugging", "command-line", "nodejs", "docker", "web-server"], "topics": ["maildev", "smtp", "nodemailer", "docker", "smtp-server", "mailcatcher", "testing", "development", "developer-tools", "nodejs"], "urls": [], "use_cases": ["test emails locally without sending to real users", "catch outgoing emails from my app in a fake SMTP inbox", "preview how HTML emails render on mobile viewports", "inspect email headers and raw source during development", "grab verification links from signup emails via an AI agent", "spin up a local mailcatcher alternative with a modern UI", "check whether a password reset email actually went out"], "what_it_is": "MailDev is a local SMTP server with a modern web interface that catches all emails sent by your application during development, so nothing reaches real inboxes. It supports HTML/plain text/raw source previews, responsive viewport testing, a REST API, and (as of 3.0) a built-in MCP server so AI agents can inspect the dev inbox.", "when_to_avoid": ["you need to send real emails to actual recipients in production", "you need a full production MTA with relaying, spam filtering, or deliverability features", "your stack cannot run Node.js or Docker", "you need persistent long-term email storage rather than a transient dev inbox"], "when_to_choose": ["you need a zero-config local SMTP catch-all for development and testing", "you want a web UI to inspect rendered HTML, plain text, headers, and raw email source", "you use Node.js or Docker and want an npm-installable or containerized fake SMTP server", "you want AI agents (via MCP) to search your dev inbox and extract links", "you need a REST API to programmatically assert on emails in tests"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/maildev", "repo": "maildev/maildev", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.449738+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:49:08.924940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "15986190ef9581ab59bcd5483b2c09e7fd0bd439d6f6cddbc94b0b1de094ee51", "fetched_at": "2026-08-28T04:09:34.449738+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maildev/maildev"}, {"content_hash": "a84c369183d6776750739099ecdd1c94d994635b7428b616cdc85327862a8215", "fetched_at": "2026-08-29T08:45:31.691080+00:00", "kind": "homepage", "missing": false, "url": "https://maildev.github.io/maildev/"}, {"content_hash": "db3e3a1bd5d00bd0324def418287c5ffff123b101d7d2ebec9e2929f07ed6091", "fetched_at": "2026-08-29T08:45:31.693841+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/maildev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 60}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4903, "days_push": 8, "days_rel": 58, "gap_med": 571, "n_releases_24m": 2}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}