{"adoption": {"forks": 73, "observed_at": "2026-09-01T02:13:58.985329+00:00", "stars": 1152}, "canonical_url": "https://ross.abutalabs.com/products/netronome", "card": {"archived": false, "artifact_type": "application", "description": "Netronome is a modern network speed testing and monitoring tool built with Go and React.", "domain": ["networking", "monitoring", "self-hosted"], "enriched": true, "function": ["monitoring", "alerting", "analytics", "data-visualization", "http-server"], "health_score": 100, "homepage": "https://netrono.me", "language": "TypeScript", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["autobrr/netronome"], "name": "autobrr/netronome", "platform": ["self-hosted", "go"], "pushed_at": "2026-08-31T22:22:09+00:00", "repo": "autobrr/netronome", "stars": 1152, "tags": ["network-monitoring", "speedtest", "iperf3", "packet-loss", "tailscale", "vnstat", "mtr", "distributed-agents", "single-binary", "devops", "linux", "docker", "web-server"], "topics": ["go", "golang", "iperf3", "librespeed", "network", "speedtest", "mtr", "shoutrrr", "tailscale", "tailscale-network", "tailscaled", "vnstat"], "urls": [], "use_cases": ["run self-hosted internet speed tests", "monitor packet loss continuously", "monitor multiple servers with distributed agents", "track network performance history with dashboards", "get alerts when network performance degrades", "monitor tailscale network performance", "test bandwidth with iperf3"], "what_it_is": "Netronome is a self-hosted network performance monitoring and speed testing tool built with Go and React, packaged as a single binary. It provides speed tests across multiple providers, continuous packet loss monitoring, distributed agents for multi-site server monitoring, and automated alerting with historical visualizations.", "when_to_avoid": ["you need full-stack observability with metrics, logs, and traces (use Prometheus/Grafana)", "you need SNMP-based device monitoring or switch/router polling", "you only need a one-off speed test without monitoring"], "when_to_choose": ["you want a lightweight single-binary network monitor with a web UI", "you need speed tests plus continuous packet loss and latency monitoring in one tool", "you manage multi-site or tailscale infrastructure and want distributed agents", "you run resource-constrained servers (~35MB RAM)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/netronome", "repo": "autobrr/netronome", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.985329+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:49.081829+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cbddcefea997c1ee871e1a2d888e7cb96081f76cc8b69e0e5e46041c094329d", "fetched_at": "2026-09-01T02:13:58.985329+00:00", "kind": "readme", "missing": false, "url": "https://github.com/autobrr/netronome"}, {"content_hash": "4292870a4b929b4a3262cbfe762c94ebb27b26d99a964f1e8f3867711b258ab6", "fetched_at": "2026-08-29T12:39:15.533629+00:00", "kind": "homepage", "missing": false, "url": "https://netrono.me"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 46, "rhythm": 95}, "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": 648, "days_push": 2, "days_rel": 34, "gap_med": 8, "n_releases_24m": 16}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}