{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:05:39.039022+00:00", "stars": 1806}, "canonical_url": "https://ross.abutalabs.com/products/puma-dev", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A tool to manage rack apps in development with puma", "domain": ["web-development", "developer-tools"], "enriched": true, "function": ["http-server", "cli", "developer-tools", "websocket"], "health_score": 20, "homepage": null, "language": "Go", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["puma/puma-dev"], "name": "puma/puma-dev", "platform": ["cli"], "pushed_at": "2024-05-13T08:50:56+00:00", "repo": "puma/puma-dev", "stars": 1806, "tags": ["rack", "rails", "puma", "development-server", "zero-config", "pow-successor", "local-dns", "https", "command-line", "macos", "linux"], "topics": [], "urls": [], "use_cases": ["run rails apps locally with .test domains", "serve multiple rack apps in development with zero config", "get https working locally for rails development", "replace pow for local app development", "test actioncable websockets locally", "auto start and stop dev apps on demand"], "what_it_is": "Puma-dev is a zero-config development server that manages Rack/Rails apps running under the Puma web server on macOS and Linux. It serves apps over HTTPS on custom .test subdomains with automatic startup and idle shutdown, succeeding the unmaintained pow tool.", "when_to_avoid": ["you don't develop Ruby Rack/Rails applications", "you need a production web server rather than a dev tool", "you're on Windows, which isn't supported"], "when_to_choose": ["you develop Rack or Rails apps on macOS or Linux and want zero-config local serving", "you need working HTTPS and websockets in local development", "you want automatic app startup and idle shutdown"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/puma-dev", "repo": "puma/puma-dev", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-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:05:39.039022+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.039022+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:31.934134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26e78cffa904e4b9fc4c8a241e2d0bb7297d38521c9a1d6ad6d9c85309f74169", "fetched_at": "2026-08-28T04:05:39.039022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puma/puma-dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3689, "days_push": 842, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}