{"adoption": {"forks": 423, "observed_at": "2026-08-28T04:08:30.267004+00:00", "stars": 3945}, "canonical_url": "https://ross.abutalabs.com/products/smtp4dev", "card": {"archived": false, "artifact_type": "application", "description": "smtp4dev - the fake smtp email server for development and testing", "domain": ["developer-tools", "email", "testing", "self-hosted"], "enriched": true, "function": ["http-server", "email", "testing", "developer-tools", "gui", "terminal-ui"], "health_score": 100, "homepage": null, "language": "C#", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["rnwood/smtp4dev"], "name": "rnwood/smtp4dev", "platform": ["windows", "cross-platform", "self-hosted"], "pushed_at": "2026-08-25T13:01:36+00:00", "repo": "rnwood/smtp4dev", "stars": 3945, "tags": ["smtp-server", "fake-smtp", "email-testing", "imap", "pop3", "mail-server", "dotnet", "web-interface", "linux", "macos", "docker"], "topics": ["smtp4dev", "smtp-server", "linux", "windows", "macosx"], "urls": [], "use_cases": ["test email sending locally without spamming real users", "inspect HTML email rendering and compatibility", "capture SMTP traffic during integration tests", "retrieve test emails via IMAP or POP3", "simulate SMTP errors and TLS scenarios", "run a disposable mail server in Docker for CI"], "what_it_is": "smtp4dev is a fake SMTP email server for development and testing, with a web interface, terminal UI, and REST API. It captures outgoing mail from applications so developers can inspect messages without emailing real recipients.", "when_to_avoid": ["you need a production mail transfer agent or real mail delivery", "you only need a minimal catch-all with no UI and prefer a tiny daemon", "your stack cannot run .NET"], "when_to_choose": ["you need a full-featured local SMTP catch-all with a web UI", "you want IMAP/POP3 access, multiple mailboxes, or relay rules in a dev mail server", "you need cross-platform or Docker-based email testing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smtp4dev", "repo": "rnwood/smtp4dev", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "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:08:30.267004+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.267004+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:35.283604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f1cd5ec142c8f011170e6307bd56e8bdd7053c178afb19ddbefce9d7d7b1a49", "fetched_at": "2026-08-28T04:08:30.267004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rnwood/smtp4dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 73}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5346, "days_push": 8, "days_rel": 183, "gap_med": 4.5, "n_releases_24m": 19}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}