{"adoption": {"forks": 601, "observed_at": "2026-08-28T04:10:59.360109+00:00", "stars": 12580}, "canonical_url": "https://ross.abutalabs.com/products/turbolinks", "card": {"archived": true, "artifact_type": "library", "description": "Turbolinks makes navigating your web application faster", "domain": ["web-development", "frontend", "performance"], "enriched": true, "function": ["frontend-framework", "routing", "state-management"], "health_score": 10, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["turbolinks/turbolinks", "turbolinks/turbolinks-classic"], "name": "Turbolinks", "platform": ["browser"], "pushed_at": "2021-08-11T02:49:14+00:00", "repo": "turbolinks/turbolinks", "stars": 12580, "tags": ["spa-alternative", "hotwire", "turbo-predecessor", "pjax-style-navigation", "server-rendered-html", "web-server"], "topics": [], "urls": [], "use_cases": ["make my server-rendered web app navigate faster without a SPA framework", "get SPA-like page transitions with plain HTML views", "avoid full page reloads when following links in a Rails app", "keep back and reload buttons working while speeding up navigation", "build hybrid mobile apps with native navigation over web views", "speed up page loads without changing my server to return JSON"], "what_it_is": "Turbolinks is a JavaScript library that speeds up web application navigation by intercepting link clicks, fetching pages via fetch/HTML5 History API, and swapping the page body without a full reload. It delivers single-page-app-like performance while keeping server-rendered HTML views, and has been superseded by Hotwire's Turbo.", "when_to_avoid": ["starting a new project - use Hotwire Turbo instead, as Turbolinks is no longer developed", "you need client-side rendering, reactive state, or a component model", "your app requires fine-grained DOM updates or modern SPA features"], "when_to_choose": ["maintaining a legacy Rails or server-rendered app already using Turbolinks 5", "you cannot migrate to Turbo/Hotwire but need faster navigation", "you want minimal JavaScript complexity with server-rendered HTML"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/turbolinks/turbolinks", "repo": "turbolinks/turbolinks", "role": "main", "score": 10}, {"path": "/repos/turbolinks/turbolinks-classic", "repo": "turbolinks/turbolinks-classic", "role": "mirror", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "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:10:59.360109+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.360109+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:13:57.182921+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9849e914033d7d22563328a9774e5a3ed3883c80bb5fb3e95faa8dcd3f2e019", "fetched_at": "2026-08-28T04:10:59.360109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/turbolinks/turbolinks"}, {"content_hash": "5e0d7a6809a86a127c6d7ff1a8931ddabd5759716e226bbc6552efe61d69ee6d", "fetched_at": "2026-08-29T08:11:07.606406+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/turbolinks"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3867, "days_push": 1848, "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}}