{"adoption": {"forks": 272, "observed_at": "2026-08-28T04:04:20.282413+00:00", "stars": 1312}, "canonical_url": "https://ross.abutalabs.com/products/yaws", "card": {"archived": false, "artifact_type": "application", "description": "Yaws webserver", "domain": ["web-development", "backend"], "enriched": true, "function": ["http-server", "websocket", "templating"], "health_score": 90, "homepage": "https://erlyaws.github.io", "language": "Erlang", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "stable", "member_repos": ["erlyaws/yaws"], "name": "erlyaws/yaws", "platform": ["bsd", "self-hosted"], "pushed_at": "2026-05-29T09:33:07+00:00", "repo": "erlyaws/yaws", "stars": 1312, "tags": ["erlang", "otp", "webserver", "http-1-1", "dynamic-content", "embedded-webserver", "server-sent-events", "appmods", "appmod", "bsd-3-clause", "rebar3", "high-concurrency", "linux", "macos", "web-server"], "topics": ["erlang"], "urls": [], "use_cases": ["serve dynamic web content from an Erlang application", "run a high-concurrency HTTP server on the BEAM", "embed a web server inside an existing Erlang/OTP app", "host websockets or server-sent events in Erlang", "build Erlang web apps with appmods instead of a separate app server", "self-host a lightweight webserver daemon on Linux"], "what_it_is": "Yaws is a high-performance HTTP 1.1 webserver written entirely in Erlang, particularly well suited for dynamic-content web applications. It can operate in standalone mode as a regular webserver daemon or in embedded mode inside another Erlang application, handling each client with a lightweight Erlang process.", "when_to_avoid": ["you need HTTP/2 or advanced proxying features found in Nginx/Caddy", "your application stack is not Erlang/Elixir-centric", "you develop or deploy primarily on Windows", "you rely on a large plugin/module ecosystem or commercial-grade support"], "when_to_choose": ["your codebase is Erlang/OTP 25+ and you want the web layer in the same VM", "you need very high client concurrency with one process per connection", "you want an embeddable webserver for an OTP application rather than a reverse-proxied external server", "you value a mature, long-maintained Erlang-native webserver with websocket and SSE support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/yaws", "repo": "erlyaws/yaws", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "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:04:20.282413+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.282413+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:49:04.761240+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5d6f732ccde647f6f10b49f51b402d51f01a1cc9540f10ba4f27127df14a05b", "fetched_at": "2026-08-28T04:04:20.282413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erlyaws/yaws"}, {"content_hash": "58f95f9f7c53e0d847307e1404d020dbb4e74dc8fe72aabde1a1597001666c72", "fetched_at": "2026-08-29T12:07:35.346342+00:00", "kind": "homepage", "missing": false, "url": "https://erlyaws.github.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 84, "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": 6403, "days_push": 96, "days_rel": 96, "gap_med": 0, "n_releases_24m": 2}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}