{"adoption": {"forks": 1193, "observed_at": "2026-08-28T04:11:47.053577+00:00", "stars": 26644}, "canonical_url": "https://ross.abutalabs.com/products/driverjs", "card": {"archived": false, "artifact_type": "library", "description": "A lightweight, dependency-free JavaScript library for guiding user focus across the page.", "domain": ["frontend", "web-development", "developer-tools"], "enriched": true, "function": ["ui-components", "animation", "state-management"], "health_score": 96, "homepage": "https://driverjs.com", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["nilbuild/driver.js"], "name": "nilbuild/driver.js", "platform": ["browser", "cross-platform"], "pushed_at": "2026-07-18T16:01:07+00:00", "repo": "nilbuild/driver.js", "stars": 26644, "tags": ["product-tour", "user-onboarding", "overlay", "spotlight", "popover", "walkthrough", "feature-introductions", "zero-dependencies", "typescript", "contextual-help", "nodejs"], "topics": ["tour", "walkthrough", "user-onboarding", "feature-introductions", "overlays", "popover", "overlay", "spotlight", "product-tour", "product-tours"], "urls": [], "use_cases": ["create a product tour walkthrough for a web app", "onboard new users with step-by-step guides", "highlight new features so users don't miss them", "add contextual help popovers next to form fields", "dim the page and focus attention on one element", "build interactive tutorials where users act as they learn"], "what_it_is": "Driver.js is a lightweight (~5kb gzipped), dependency-free TypeScript library for creating product tours, feature introductions, and element highlights on web pages. It provides a customizable overlay API with popovers, keyboard navigation, and hooks that also supports contextual help, focus shifting, and modal-like use cases.", "when_to_avoid": ["you need a full-featured SaaS onboarding platform with analytics and user segmentation", "you need React/Vue-specific declarative components rather than a vanilla JS API", "you need complex branching logic or server-managed tour content out of the box"], "when_to_choose": ["you need a tiny, zero-dependency tour/overlay library", "you want full control over highlighting, popovers, and tour behavior via hooks", "you need consistent behavior across all major browsers and mobile", "you want keyboard-accessible onboarding flows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/driverjs", "repo": "nilbuild/driver.js", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "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:11:47.053577+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.053577+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:55:50.491804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf73142658ca63060189447f832c712852901e04aa4a46267ff60db3faab6c94", "fetched_at": "2026-08-28T04:11:47.053577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nilbuild/driver.js"}, {"content_hash": "4b4d5837bfec16a452a7e09b05903c4911b9e13bcdcf6fb42c1d18cc31eb031c", "fetched_at": "2026-08-29T07:52:24.378691+00:00", "kind": "homepage", "missing": false, "url": "https://driverjs.com"}, {"content_hash": "c0699ae484fa93c82baf33422f519221a589780c22ce717b85304a71578a0075", "fetched_at": "2026-08-29T07:52:24.383651+00:00", "kind": "site_page", "missing": false, "url": "https://driverjs.com/docs/installation"}, {"content_hash": "5bfb1ec27b4b2b814b289848588f40688a9121d795e34555874223757aeb0f82", "fetched_at": "2026-08-29T07:52:24.385908+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/driver.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 93}, "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": 3097, "days_push": 46, "days_rel": 47, "gap_med": 18, "n_releases_24m": 8}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}