{"adoption": {"forks": 127, "observed_at": "2026-08-28T04:05:25.730041+00:00", "stars": 1712}, "canonical_url": "https://ross.abutalabs.com/products/amperfy", "card": {"archived": false, "artifact_type": "application", "description": "Amperfy is an iOS/iPadOS/macOS app to play songs from an Ampache or Subsonic server", "domain": ["media", "self-hosted", "apple-ecosystem", "entertainment"], "enriched": true, "function": ["gui", "audio-processing", "http-client", "caching"], "health_score": 98, "homepage": null, "language": "Swift", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["BLeeEZ/amperfy"], "name": "BLeeEZ/amperfy", "platform": ["cross-platform"], "pushed_at": "2026-08-13T15:06:55+00:00", "repo": "BLeeEZ/amperfy", "stars": 1712, "tags": ["music-player", "ampache", "subsonic", "offline-playback", "carplay", "siri", "podcasts", "scrobbling", "gapless-playback", "equalizer", "ios", "macos", "swift", "mobile", "desktop"], "topics": ["ampache", "subsonic", "swift", "ios", "music-player", "ipados", "macos"], "urls": [], "use_cases": ["play music from my own Ampache server on iPhone", "offline listening to my Subsonic library", "stream self-hosted music in the car via CarPlay", "listen to podcasts from my Subsonic server", "control music playback with Siri", "sync and cache songs for offline playback on iPad", "scrobble plays from a self-hosted music server"], "what_it_is": "Amperfy is a native iOS/iPadOS/macOS music player app written in Swift that streams and plays songs from self-hosted Ampache or Subsonic servers. It supports offline mode, CarPlay, Siri integration, podcasts, radio, gapless playback, and scrobbling.", "when_to_avoid": ["you use Spotify, Apple Music, or another cloud streaming service instead of a self-hosted server", "you need a player on Android, Windows, or Linux", "you want a web-based or cross-platform client rather than a native Apple app"], "when_to_choose": ["you self-host music with Ampache or Subsonic and want a polished native Apple client", "you need offline playback, CarPlay, or Siri support for your own music library", "you want podcasts and radio alongside music from the same server"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/amperfy", "repo": "BLeeEZ/amperfy", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "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:25.730041+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.730041+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:45.766803+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e551d20d0ae6c343e271bf0c0427794cd83b505facd2384f5f14314f5bf3dc52", "fetched_at": "2026-08-28T04:05:25.730041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BLeeEZ/amperfy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 73}, "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": 2734, "days_push": 20, "days_rel": 20, "gap_med": 153.0, "n_releases_24m": 5}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}