{"adoption": {"forks": 156, "observed_at": "2026-08-28T04:05:47.955291+00:00", "stars": 1878}, "canonical_url": "https://ross.abutalabs.com/products/dream", "card": {"archived": false, "artifact_type": "framework", "description": "Tidy, feature-complete Web framework", "domain": ["web-development", "backend", "apis"], "enriched": true, "function": ["web-framework", "http-server", "websocket", "graphql", "routing", "middleware", "templating", "logging", "error-handling", "cryptography"], "health_score": 80, "homepage": "https://camlworks.github.io/dream/", "language": "OCaml", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["camlworks/dream"], "name": "camlworks/dream", "platform": ["cross-platform", "windows"], "pushed_at": "2026-05-23T18:26:29+00:00", "repo": "camlworks/dream", "stars": 1878, "tags": ["ocaml", "reasonml", "http2", "tls", "sessions", "csrf-protection", "melange", "js-of-ocaml", "linux", "macos"], "topics": ["ocaml", "web", "framework", "reasonml", "http", "websockets", "graphql"], "urls": [], "use_cases": ["build web apps in OCaml without boilerplate", "serve WebSockets and GraphQL from an OCaml backend", "run HTTPS and HTTP/2 without a reverse proxy", "create secure forms and cookie-based sessions", "write full-stack OCaml apps with Melange or js_of_ocaml frontends", "compose middleware and routes as plain functions"], "what_it_is": "Dream is a tidy, feature-complete web framework for OCaml and ReasonML with a flat, one-module API. It supports WebSockets, GraphQL, HTTP/2, TLS, sessions, secure cookies, CSRF-safe forms, and HTML templating with embedded OCaml.", "when_to_avoid": ["you need an ecosystem in a mainstream language like Python, Node, or Go", "you want a highly opinionated, batteries-heavy framework with ORMs and admin panels", "your team has no OCaml experience"], "when_to_choose": ["you are building a web server or API in OCaml or ReasonML", "you want a batteries-included framework with security helpers built in", "you prefer a small, flat API with minimal custom types", "you need transparent HTTP/2 and TLS without a proxy"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dream", "repo": "camlworks/dream", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "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:47.955291+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.955291+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:14:38.962455+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04e2b2138aee58e2367ada2f3839d5d4a8d73abf5c38a77420365f22fda27cea", "fetched_at": "2026-08-28T04:05:47.955291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/camlworks/dream"}, {"content_hash": "d03b0f0e87ea3c7dd81d6e7d107ed6f2570c4cffbb4ffe240cc438975da5ec43", "fetched_at": "2026-08-29T10:53:18.893001+00:00", "kind": "homepage", "missing": false, "url": "https://camlworks.github.io/dream/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 83, "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": 2004, "days_push": 102, "days_rel": 640, "gap_med": null, "n_releases_24m": 1}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}