{"adoption": {"forks": 307, "observed_at": "2026-08-28T04:04:58.529212+00:00", "stars": 1527}, "canonical_url": "https://ross.abutalabs.com/products/impressionist", "card": {"archived": false, "artifact_type": "plugin", "description": "Rails Plugin that tracks impressions and page views", "domain": ["web-development", "analytics", "backend"], "enriched": true, "function": ["logging", "analytics", "middleware"], "health_score": 60, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["charlotte-ruby/impressionist"], "name": "charlotte-ruby/impressionist", "platform": ["ruby"], "pushed_at": "2026-02-08T22:01:16+00:00", "repo": "charlotte-ruby/impressionist", "stars": 1527, "tags": ["rails", "page-views", "impressions", "unique-visitors", "bot-filtering", "web-server"], "topics": ["impression", "unique-impressions", "logging-impressions", "counts-impressions", "ruby", "impressions-table"], "urls": [], "use_cases": ["track page views in a rails app", "count unique impressions per model", "log which users viewed which records", "replace google analytics with in-app view tracking", "record referrer and ip address for each visit", "attach custom messages to view events"], "what_it_is": "A Rails plugin that logs impressions (page views and action views) per controller action or manually per model, storing them in an impressions database table. It filters known bots and lets you attach custom messages, providing in-app analytics data instead of relying on external services like Google Analytics.", "when_to_avoid": ["you need full analytics dashboards or reporting (it only creates data, no reporting)", "you are not using Ruby on Rails", "you need real-time or high-scale analytics pipelines"], "when_to_choose": ["you need view/impression data directly queryable in your own database", "you want per-model or per-action tracking in a Rails app", "you need bot-filtered page view counts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/impressionist", "repo": "charlotte-ruby/impressionist", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "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:58.529212+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.529212+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:31:33.221590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0ffaf6614040816a50012962e661979b02e66d0fbdc3b06b4c52bd3542edbf3", "fetched_at": "2026-08-28T04:04:58.529212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlotte-ruby/impressionist"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 66, "longevity": 100, "rhythm": 8}, "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": 5689, "days_push": 206, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}