{"adoption": {"forks": 97, "observed_at": "2026-08-28T04:03:42.669302+00:00", "stars": 1132}, "canonical_url": "https://ross.abutalabs.com/products/beatbump", "card": {"archived": true, "artifact_type": "application", "description": "Alternative YouTube Music frontend built with Svelte/SvelteKit 🎧", "domain": ["web-development", "frontend", "media", "privacy", "self-hosted", "audio"], "enriched": true, "function": ["http-server", "web-framework", "search-engine", "audio-processing", "privacy"], "health_score": 10, "homepage": "https://beatbump.io/", "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["snuffyDev/Beatbump"], "name": "snuffyDev/Beatbump", "platform": ["self-hosted", "cloud"], "pushed_at": "2025-10-03T20:49:05+00:00", "repo": "snuffyDev/Beatbump", "stars": 1132, "tags": ["youtube-music", "alternative-frontend", "sveltekit", "pwa", "webrtc", "ad-free", "music-streaming", "cloudflare-workers", "web-server", "docker", "nodejs"], "topics": ["svelte", "sveltekit", "youtube", "youtube-music", "music", "frontend", "cloudflare-workers", "javascript", "webapp", "alternative-frontends", "youtube-music-api", "pwa", "docker-compose", "privacy", "self-hosted"], "urls": [], "use_cases": ["listen to youtube music without ads", "self-host a privacy-friendly youtube music frontend", "play youtube music in the background on mobile", "manage local music playlists in the browser", "host group listening sessions with friends", "search songs albums and artists without tracking"], "what_it_is": "Beatbump is a privacy-respecting alternative frontend for YouTube Music built with SvelteKit, offering ad-free audio playback, playlist management, and group listening sessions. It can be self-hosted via Docker or Cloudflare Workers, though it is no longer actively developed due to YouTube changes.", "when_to_avoid": ["you need actively maintained software, since development has stopped due to YouTube changes", "you need video playback, as playback is audio-only", "you rely on YouTube Music features that frequently break alternative frontends"], "when_to_choose": ["you want an ad-free, privacy-respecting YouTube Music experience", "you want to self-host an alternative frontend for YouTube Music", "you need background audio playback on mobile via a PWA"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/beatbump", "repo": "snuffyDev/Beatbump", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "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:42.669302+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.669302+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:37:59.467035+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e121934c0ec66ae8f62c361eff40bc35413efbaa9e6325d81666598ea0d94413", "fetched_at": "2026-08-28T04:03:42.669302+00:00", "kind": "readme", "missing": false, "url": "https://github.com/snuffyDev/Beatbump"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 45, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1903, "days_push": 334, "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}}