{"adoption": {"forks": 134, "observed_at": "2026-08-28T04:05:34.609481+00:00", "stars": 1776}, "canonical_url": "https://ross.abutalabs.com/products/scotty", "card": {"archived": false, "artifact_type": "framework", "description": "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository)", "domain": ["web-development", "backend", "apis"], "enriched": true, "function": ["web-framework", "routing", "middleware", "http-server"], "health_score": 74, "homepage": "http://hackage.haskell.org/package/scotty", "language": "Haskell", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["scotty-web/scotty"], "name": "scotty-web/scotty", "platform": ["cross-platform"], "pushed_at": "2026-06-26T10:50:49+00:00", "repo": "scotty-web/scotty", "stars": 1776, "tags": ["sinatra-inspired", "wai", "warp", "rest-api", "haskell", "dsl", "web-server"], "topics": ["rest", "rest-api", "web-framework"], "urls": [], "use_cases": ["build a REST API in Haskell", "write a small Sinatra-style web app", "serve JSON endpoints with Warp", "add cookies and session management to a web app", "prototype web services quickly in Haskell", "compose WAI middleware like logging or header validation"], "what_it_is": "Scotty is a lightweight Haskell web framework inspired by Ruby's Sinatra, built on the WAI interface and the fast Warp web server. It lets developers define RESTful routes declaratively with verb, URL pattern, and handler, and supports middleware, cookies, sessions, and monad transformer integration.", "when_to_avoid": ["you need a full-featured framework with built-in ORM, auth, or templating", "you're building large production apps needing heavy ecosystem support", "you're not working in Haskell"], "when_to_choose": ["you want a minimal, declarative Haskell web framework with low ceremony", "you need RESTful routing on top of the fast Warp server", "you want template-language-agnostic responses (any Text value)", "you need monad transformer support to embed custom stacks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/scotty", "repo": "scotty-web/scotty", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "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:34.609481+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.609481+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:25:18.768852+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85dbb5f8de888d2fc66361c8695ae51d873d6faf1b78b26d75af0126dbcb861d", "fetched_at": "2026-08-28T04:05:34.609481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scotty-web/scotty"}, {"content_hash": "e0f72056f40e39106c4fdea4bdcfded954ea3e0e1e998e0710f86c04a9b81e58", "fetched_at": "2026-08-29T11:03:57.066410+00:00", "kind": "homepage", "missing": false, "url": "http://hackage.haskell.org/package/scotty"}, {"content_hash": "436203641af69dbb5bb28c70450ccafeaeec1d570efa653898c73ddc75da5b85", "fetched_at": "2026-08-29T11:03:57.069078+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/doc-index.html"}, {"content_hash": "a98d3e19d02b7f9a6fbe974c8249a27f8c2dc3d7c2e3e914bf0b16e76ffea01f", "fetched_at": "2026-08-29T11:03:57.070951+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty.html"}, {"content_hash": "f9c3f37bfe1c68c5d704c2f6cc0d5dde9d6f0f688f5c656d8fd313834cf02696", "fetched_at": "2026-08-29T11:03:57.073486+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Cookie.html"}, {"content_hash": "a538344200de3223ed81ed7be65cfd56da83b2bbe6ffc752cbff422fe9074633", "fetched_at": "2026-08-29T11:03:57.076529+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Internal-Types.html"}, {"content_hash": "3197b2425d2a1d9c52118709ab952b8f534d3abd93675e7806ec66d6064927e3", "fetched_at": "2026-08-29T11:03:57.078605+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Session.html"}, {"content_hash": "c2c0a65170be514b6ecddc889ab957e1bc5acf95336bf8e0babb7cba1fc25122", "fetched_at": "2026-08-29T11:03:57.080726+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans.html"}, {"content_hash": "080d00f9540cc365c12515ed172273c31745af0523a134f4db1ac467c1620e2d", "fetched_at": "2026-08-29T11:03:57.083442+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/docs/Web-Scotty-Trans-Strict.html"}, {"content_hash": "891fe16d35b17c759f8983dc829f6abccee127e85a5823633dcf93e30da79c2b", "fetched_at": "2026-08-29T11:03:57.085709+00:00", "kind": "site_page", "missing": false, "url": "http://hackage.haskell.org/package/scotty-0.30/changelog"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "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": 5360, "days_push": 68, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}