{"adoption": {"forks": 128, "observed_at": "2026-08-28T04:04:21.948034+00:00", "stars": 1321}, "canonical_url": "https://ross.abutalabs.com/products/mail_view", "card": {"archived": true, "artifact_type": "library", "description": "Visual email testing", "domain": ["web-development", "testing", "developer-tools", "email"], "enriched": true, "function": ["testing", "email", "web-framework", "templating"], "health_score": 10, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["basecamp/mail_view"], "name": "basecamp/mail_view", "platform": ["ruby", "self-hosted"], "pushed_at": "2018-02-08T08:07:12+00:00", "repo": "basecamp/mail_view", "stars": 1321, "tags": ["email-previews", "action-mailer", "rails", "mail-templates", "development-tools", "web-server"], "topics": [], "urls": [], "use_cases": ["preview email templates in the browser during development", "test mailer views without sending real emails", "render emails with fixture or factory data", "visually inspect plain text and HTML email output", "set up mailer preview scenarios like unit tests"], "what_it_is": "MailView is a Ruby gem that lets Rails developers preview plain text and HTML email templates in a browser without actually sending mail. It was merged into Rails 4.1+ as ActionMailer previews, so the standalone gem is largely superseded.", "when_to_avoid": ["you are on Rails 4.1 or later, which includes ActionMailer previews natively", "you need actively maintained software with recent releases", "you need email testing features beyond simple visual preview, such as delivery interception"], "when_to_choose": ["you maintain a legacy Rails 2.x or 3.x app that predates built-in mailer previews", "you want a lightweight standalone email preview tool for non-Rails-4.1 Ruby projects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mail_view", "repo": "basecamp/mail_view", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "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:04:21.948034+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:21.948034+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:47:16.923280+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f8f5608af0469b2f9951cf68905d668393f804ee9ab1863c790c960daab72af", "fetched_at": "2026-08-28T04:04:21.948034+00:00", "kind": "readme", "missing": false, "url": "https://github.com/basecamp/mail_view"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5978, "days_push": 3128, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}