Product tour library comparisons
Head-to-head comparisons of the open-source libraries developers actually choose between — current versions, licenses, bundle sizes, accessibility and working code. Every fact is read from npm, the library's own docs, or its license file, and dated.
Last checked: October 10, 2026
Driver.js vs React Joyride
Driver.js vs React Joyride, checked October 2026: licenses, v3 API changes, React 19 support, bundle size, accessibility and working code for both.
Read the comparison →Driver.js vs Shepherd.js vs Intro.js
Driver.js, Shepherd.js and Intro.js compared in October 2026: two are now AGPL with paid licenses. Versions, sizes, accessibility, code and which to pick.
Read the comparison →React Joyride alternatives
React Joyride alternatives checked October 2026: Driver.js, Reactour, NextStep, Onborda and Shepherd, with licenses, React 19 support and working code.
Read the comparison →Intro.js & Shepherd.js alternatives
Is Intro.js free? Not for commercial use, and neither is Shepherd.js. MIT-licensed alternatives checked October 2026, with code and honest trade-offs.
Read the comparison →Every library we track, in one table.
Sorted by npm downloads over the last 90 days. AGPL libraries are flagged: they are free for open-source and non-commercial use, and sell commercial licenses for everything else.
| Library | License | Latest | Frameworks | Size | Downloads (90d) | Maintenance |
|---|---|---|---|---|---|---|
| Driver.jsdriver.js | MIT | 1.9.02026-10 | Any — vanilla TypeScript, no framework bindings needed | ~5 kB gzip per its README; zero dependencies | 22.4M | Very active — 1.5 through 1.9 shipped June–October 2026 |
| React Joyridereact-joyride | MIT | 3.2.02026-07 | React 16.8–19 only | 25.6 kB gzip incl. 10 dependencies (bundlephobia) | 16.5M | Active — v3 rewrite March 2026, 3.2.0 in July |
| Shepherd.jsshepherd.js | AGPL-3.0 + paid commercial | 15.3.02026-08 | Any; official React, Angular and Vue wrappers (also AGPL) | 15.3 kB gzip incl. 2 dependencies (bundlephobia) | 4.0M | Active — 15.x through 2026 |
| Intro.jsintro.js | AGPL-3.0 + paid commercial | 8.6.02026-09 | Any; community wrappers (intro.js-react is MIT, but wraps AGPL code) | 19.2 kB gzip, zero dependencies (bundlephobia) | 2.5M | Active — 8.4 to 8.6 shipped July–September 2026 |
| Reactour@reactour/tour | MIT | 3.8.02025-05 | React 16–19 only | 7.2 kB gzip incl. 3 dependencies (bundlephobia) | 2.5M | Slower — last release May 2025 |
| NextStepnextstepjs | MIT | 2.3.02026-07 | Next.js 13+, plus React Router and Remix adapters; needs motion | Not measured — bundlephobia didn't return a result | 749k | Active — 2.3.0 in July 2026 |
| Onbordaonborda | MIT | 1.2.52024-12 | Next.js 13+ (App Router); needs framer-motion and Tailwind | 2.3 kB gzip, excluding its framer-motion peer (bundlephobia) | 468k | Quiet — last release December 2024 |
| TourGuide JS@sjmc11/tourguidejs | MIT | 0.0.272025-05 | Any — vanilla JS, steps from data attributes | Not measured | 143k | Pre-1.0; last release May 2025 |
| Hopscotchhopscotch | Apache-2.0 | 0.3.12017-06 | Any — vanilla JS | Not measured | 124k | Abandoned — last release June 2017, repo archived |
Versions, publish months, licenses and downloads (July 11 – October 8, 2026) from the npm registry. Sizes are bundlephobia’s min+gzip figure for the package and its own dependencies, excluding peers such as React — or the README’s own figure where noted. “Not measured” means we couldn’t read a measurement, so we didn’t guess.
Three things to check first.
The license, before the features
Shepherd.js and Intro.js are AGPL-3.0 and sell commercial licenses for revenue-generating products. Driver.js, React Joyride, Reactour, NextStep and Onborda are MIT. Older articles often get this wrong for Shepherd, which was MIT until late 2024.
Whether it fits your framework
Driver.js, Shepherd.js and Intro.js work on the rendered DOM, so they run anywhere. React Joyride and Reactour are React-only; NextStep and Onborda are built for Next.js. Our framework guides cover the options per stack.
Tours that cross pages
Most libraries keep a tour on one page; crossing routes means persisting progress and resuming. NextStep and Onborda build this in with per-step nextRoute. Driver.js documents an official resumable pattern.
Or skip the library entirely.
If what you need is an onboarding program — targeting, analytics, edits without deploys — the free plan covers 3 flows and 1,000 monthly active users.
Free plan available · No credit card · No demo call