{"adoption": {"forks": 106, "observed_at": "2026-08-28T04:06:02.843462+00:00", "stars": 1987}, "canonical_url": "https://ross.abutalabs.com/products/rendora", "card": {"archived": true, "artifact_type": "service", "description": "Dynamic server-side rendering using headless Chrome", "domain": ["web-development", "frontend", "backend"], "enriched": true, "function": ["ssr", "http-server", "proxy", "caching", "web-scraping"], "health_score": 10, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["rendora/rendora"], "name": "rendora/rendora", "platform": ["go", "self-hosted"], "pushed_at": "2024-02-02T15:21:23+00:00", "repo": "rendora/rendora", "stars": 1987, "tags": ["headless-chrome", "dynamic-rendering", "spa", "reverse-proxy", "crawler-friendly", "prometheus-metrics", "seo", "linux", "docker"], "topics": ["ssr", "react", "vue", "angular", "reactjs", "vuejs", "go", "golang", "chrome-headless", "chrome-devtools", "javascript", "seo", "seo-optimization", "server-side-rendering", "dynamic-rendering", "spa", "crawler", "puppeteer"], "urls": [], "use_cases": ["improve SEO for a React or Vue single-page app", "serve rendered HTML to Googlebot and Bingbot", "add dynamic rendering without changing backend code", "render JavaScript pages for crawlers using headless Chrome", "proxy requests and render whitelisted user agents", "cache server-side rendered pages for bots"], "what_it_is": "Rendora is a dynamic renderer written in Go that acts as a reverse HTTP proxy, serving headless-Chrome-rendered HTML to web crawlers while passing normal requests through untouched. It provides zero-configuration server-side rendering for SPAs built with React, Vue, or Angular without any changes to frontend or backend code.", "when_to_avoid": ["you want full SSR integrated into your framework build (use Next.js or Nuxt)", "your site is mostly static and prerendering at build time suffices", "you need an actively developed project with frequent updates"], "when_to_choose": ["you have an existing SPA and need crawler-friendly HTML with zero code changes", "you want a single fast Go binary with built-in caching and Prometheus metrics", "you need user-agent and path-based filtering for dynamic rendering"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rendora", "repo": "rendora/rendora", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "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:06:02.843462+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:02.843462+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:03:01.538532+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8bb260095079b588b0fa746effc38f850e80a3afa277b139c3c041804ceaef7b", "fetched_at": "2026-08-28T04:06:02.843462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rendora/rendora"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2845, "days_push": 943, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}