{"adoption": {"forks": 179, "observed_at": "2026-08-28T04:05:25.766682+00:00", "stars": 1711}, "canonical_url": "https://ross.abutalabs.com/products/routr", "card": {"archived": false, "artifact_type": "service", "description": "⚡ The future of programmable SIP servers.", "domain": ["networking", "self-hosted", "apis", "developer-tools", "cloud-computing"], "enriched": true, "function": ["http-server", "api-framework", "proxy", "sdk", "cli"], "health_score": 94, "homepage": "https://routr.io", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["fonoster/routr"], "name": "fonoster/routr", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-07-06T21:17:25+00:00", "repo": "fonoster/routr", "stars": 1711, "tags": ["sip", "voip", "webrtc", "sip-proxy", "registrar", "location-server", "telephony", "programmable-sip", "typescript", "docker", "kubernetes", "nodejs"], "topics": ["sip", "webrtc", "voip", "instant-messaging", "ims", "asterisk", "kamailio", "freepbx", "freeswitch", "fusionpbx", "twilio", "docker", "intercom", "kubernetes", "opensips", "scaip", "fonoster", "server"], "urls": [], "use_cases": ["deploy a scalable SIP server for VoIP telephony", "run a cloud-native SIP proxy on Kubernetes", "build a programmable alternative to Twilio for voice", "register and route SIP endpoints and WebRTC clients", "manage a VoIP network via REST API or CLI", "set up a SIP registrar and location server for carriers"], "what_it_is": "Routr is a lightweight, programmable SIP proxy, location server, and registrar for building scalable VoIP infrastructure. It is cloud-native, deployable via Docker and Kubernetes, and controllable through a CLI, RESTful API, web GUI, and Node.js SDK.", "when_to_avoid": ["you need a full PBX with voicemail and conferencing out of the box", "you rely on legacy Asterisk dialplan or FreeSWITCH applications", "you need PSTN connectivity without an upstream carrier"], "when_to_choose": []}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/routr", "repo": "fonoster/routr", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "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.766682+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.766682+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:58.826928+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22f3e7f8c531d269072772ef3b0e27c43d3af9d65b509fcec8cf484442d4dc9b", "fetched_at": "2026-08-28T04:05:25.766682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fonoster/routr"}, {"content_hash": "abaa8dd2bc7c2b20f33fe7f9fd71bf7376200ca3ff070d2462f6e6e82e5f0c37", "fetched_at": "2026-08-29T11:11:24.053768+00:00", "kind": "homepage", "missing": false, "url": "https://routr.io"}, {"content_hash": "0eb03616d3be8aee7ef63fd7a0d14bb2f3fdfffec60a39c74e4f17d5a69de083", "fetched_at": "2026-08-29T11:11:24.062796+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs"}, {"content_hash": "d44bf5525fd7303e38bff22c6fc7de992697bda29cbea156beae3470b6d9bc41", "fetched_at": "2026-08-29T11:11:24.064618+00:00", "kind": "site_page", "missing": false, "url": "https://routr.io/docs/community"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 78}, "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": 3514, "days_push": 58, "days_rel": 65, "gap_med": 35, "n_releases_24m": 8}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}