{"adoption": {"forks": 135, "observed_at": "2026-08-28T04:03:55.021279+00:00", "stars": 1186}, "canonical_url": "https://ross.abutalabs.com/products/armchair", "card": {"archived": false, "artifact_type": "library", "description": "A simple yet powerful App Review Manager for iOS and OSX in Swift", "domain": ["mobile-development", "developer-tools"], "enriched": true, "function": ["ui-components", "plugin-system"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["UrbanApps/Armchair"], "name": "UrbanApps/Armchair", "platform": [], "pushed_at": "2022-11-06T14:42:52+00:00", "repo": "UrbanApps/Armchair", "stars": 1186, "tags": ["app-review", "app-store-ratings", "review-prompt", "swift-framework", "user-feedback", "ios", "macos", "swift"], "topics": [], "urls": [], "use_cases": ["prompt users to rate my iOS app after meaningful usage", "avoid negative-skewed App Store reviews by asking happy users", "customize when review prompts appear in my Swift app", "sync review prompt state across a user's devices", "localize app review prompts in many languages"], "what_it_is": "Armchair is a Swift library for iOS and OS X apps that intelligently prompts users to write App Store reviews. It lets developers define customizable rules so review requests appear only after users have demonstrated satisfaction, counteracting negatively skewed ratings.", "when_to_avoid": ["your app targets platforms other than iOS/macOS", "you need a maintained solution with active development and modern SKStoreReviewController integration", "you prefer Objective-C without bridging headers"], "when_to_choose": ["you ship iOS or OS X apps on the App Store and want more positive reviews", "you want fully runtime-configurable, rule-based review prompting in Swift", "you need multi-device prompt deduplication or built-in localization"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/armchair", "repo": "UrbanApps/Armchair", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "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:03:55.021279+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.021279+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:23:47.568377+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "58cbd2b7386a3c525749c82abac96afbebb68f5b35956ceb0f739e4483e470ab", "fetched_at": "2026-08-28T04:03:55.021279+00:00", "kind": "readme", "missing": false, "url": "https://github.com/UrbanApps/Armchair"}], "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": 4374, "days_push": 1396, "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}}