{"adoption": {"forks": 148, "observed_at": "2026-08-28T04:05:58.923004+00:00", "stars": 1954}, "canonical_url": "https://ross.abutalabs.com/products/mailin", "card": {"archived": false, "artifact_type": "service", "description": "Artisanal inbound emails for every web app", "domain": ["email", "web-development", "backend", "self-hosted"], "enriched": true, "function": ["email", "http-server", "parser", "security"], "health_score": 20, "homepage": "mailin.io", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Flolagale/mailin"], "name": "Flolagale/mailin", "platform": ["self-hosted"], "pushed_at": "2021-08-27T14:15:31+00:00", "repo": "Flolagale/mailin", "stars": 1954, "tags": ["smtp-server", "inbound-email", "webhook", "dkim", "spf", "spamassassin", "email-parsing", "nodejs", "linux", "web-server"], "topics": [], "urls": [], "use_cases": ["receive inbound emails in my web app via webhook", "run my own SMTP server to parse incoming email as JSON", "check DKIM and SPF on incoming emails", "get spam scores for inbound email with spamassassin", "self-hosted alternative to inbound email parsing services", "embed an email-receiving SMTP server in a node application"], "what_it_is": "Mailin is an SMTP server that receives inbound emails, parses them, and posts them as JSON to a webhook URL of your choice. It also validates DKIM and SPF, computes spam scores via SpamAssassin, and detects the email language, and can run standalone from the CLI or embedded in a Node app.", "when_to_avoid": ["you need to send outbound email rather than receive it", "you run modern Node versions - Mailin targets Node ~0.12/iojs and Python 2.7 dependencies", "you want a maintained service with active support and updates"], "when_to_choose": ["you need to receive and parse inbound emails and forward them to your app as JSON", "you want self-hosted control over email intake with spam and authentication checks", "you want a lightweight CLI or embeddable SMTP-to-webhook bridge"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mailin", "repo": "Flolagale/mailin", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "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:05:58.923004+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.923004+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:06:31.461266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0cc39f2c72238a9f3f9d161b184b909e884cdc8de6499b75590f564567ea4200", "fetched_at": "2026-08-28T04:05:58.923004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Flolagale/mailin"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 4549, "days_push": 1832, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}