{"adoption": {"forks": 300, "observed_at": "2026-08-28T04:08:48.494758+00:00", "stars": 4410}, "canonical_url": "https://ross.abutalabs.com/products/wakapi", "card": {"archived": false, "artifact_type": "service", "description": "📊 A minimalist, self-hosted WakaTime-compatible backend for coding statistics", "domain": ["developer-tools", "analytics", "self-hosted", "apis"], "enriched": true, "function": ["http-server", "api-framework", "analytics", "monitoring", "self-hosted"], "health_score": 100, "homepage": "https://wakapi.dev", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["muety/wakapi"], "name": "muety/wakapi", "platform": ["windows", "self-hosted", "go"], "pushed_at": "2026-08-26T20:06:01+00:00", "repo": "muety/wakapi", "stars": 4410, "tags": ["wakatime-compatible", "coding-statistics", "time-tracking", "rest-api", "prometheus-metrics", "leaderboards", "badges", "linux", "macos", "docker", "web-server"], "topics": ["wakatime", "wakatime-api", "time-tracker", "developer-tools", "coding-statistics", "self-hosted", "productivity"], "urls": [], "use_cases": ["self-host my own WakaTime backend", "track time spent coding per project and language", "get coding statistics dashboards and leaderboards", "add coding stats badges to my README", "export my coding time metrics to Prometheus", "replace WakaTime with a privacy-friendly self-hosted alternative", "receive weekly email reports of my coding activity"], "what_it_is": "Wakapi is a minimalist, self-hosted WakaTime-compatible backend for tracking and visualizing coding statistics such as time spent per project, language, editor, and OS. It is written in Go, offers a REST API, badges, weekly email reports, and Prometheus exports, and can be self-hosted or used via a hosted cloud service.", "when_to_avoid": ["you prefer a fully managed SaaS with zero setup and are fine with WakaTime's cloud", "you need full WakaTime feature parity, as compatibility is only partial", "you need non-coding time tracking (e.g., general project time management)", "you want to contribute code, since pull requests are temporarily not accepted"], "when_to_choose": ["you want WakaTime-compatible coding statistics without paying for or trusting the hosted WakaTime service", "you need a lightweight, fast, self-hosted time tracker for developer activity", "you want REST API access, badges, and Prometheus metrics for coding data", "GDPR-compliant data handling matters to you"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wakapi", "repo": "muety/wakapi", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "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:08:48.494758+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.494758+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:03.850960+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fe505ffa996560f94e83192d9c52466c9a0e1fac2c48b8fc924f4f7e63216b3", "fetched_at": "2026-08-28T04:08:48.494758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/muety/wakapi"}, {"content_hash": "cfbd8a65e1aa10c62ca1dff12c8f95bdcffb85e810720cfdb8fddb7737244164", "fetched_at": "2026-08-29T09:08:49.857936+00:00", "kind": "homepage", "missing": false, "url": "https://wakapi.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 86}, "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": 2661, "days_push": 7, "days_rel": 14, "gap_med": 35.5, "n_releases_24m": 21}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}