{"adoption": {"forks": 280, "observed_at": "2026-08-28T04:05:30.255976+00:00", "stars": 1741}, "canonical_url": "https://ross.abutalabs.com/products/swifthn", "card": {"archived": false, "artifact_type": "application", "description": "A Hacker News reader in Swift", "domain": ["social-media", "mobile-development", "developer-tools"], "enriched": true, "function": ["web-scraping", "gui"], "health_score": 20, "homepage": null, "language": "Swift", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["Dimillian/SwiftHN"], "name": "Dimillian/SwiftHN", "platform": [], "pushed_at": "2020-10-01T13:21:44+00:00", "repo": "Dimillian/SwiftHN", "stars": 1741, "tags": ["hacker-news", "news-reader", "swift", "ios-app", "open-source-app", "ios", "mobile"], "topics": [], "urls": [], "use_cases": ["read hacker news on iphone", "browse hacker news posts and comments natively on ios", "open-source hacker news client for ios", "save hacker news articles to safari reading list", "view hacker news user submissions", "learn how to build an ios news reader app in swift"], "what_it_is": "SwiftHN is an open-source Hacker News reader iOS app written in Swift, published on the App Store as HN Reader. It uses its own scraping library HackerSwifter to fetch posts and comments and displays them in a native iOS interface.", "when_to_avoid": ["you need login, voting, or posting features (planned but not implemented)", "you need a actively maintained app with recent updates", "you need an Android or cross-platform client"], "when_to_choose": ["you want a native iOS Hacker News reader", "you want to fork or study an open-source Swift iOS app", "you need a simple HN client with comment viewing and sharing extensions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swifthn", "repo": "Dimillian/SwiftHN", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "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:30.255976+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.255976+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:29:56.800766+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb0a682f3627fb1f74075eaaef7c40e3a44f66617d14fc912339bfe0a99b1b59", "fetched_at": "2026-08-28T04:05:30.255976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dimillian/SwiftHN"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4472, "days_push": 2162, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}