GlowTour.js
Get started

An open-source React Joyride alternative

GlowTour.js vs React Joyride

React Joyride is a React-focused product tour library; GlowTour.js is framework-agnostic, with native adapters for React, Vue, Angular, Solid and vanilla JavaScript. For a React-only product both are options; the differences are framework reach and how you customize the UI.

Feature comparison

GlowTour.js vs React Joyride: feature-by-feature comparison
FeatureGlowTour.jsReact Joyride
Vanilla JSNative (custom elements)No
ReactNative integrationNative (React-only)
VueNative integrationNo
AngularNative integrationNo
SolidNative integrationNo
Framework-agnostic coreYesNo
SSR & hydrationVerified in Next.js, Nuxt, SolidStart, AngularSSR-safe, renders client-side only
TypeScriptYesYes
CSS customizationYesYes
Custom/composable UIFirst-class (composable components)Custom React components
Custom layoutsYesYes (custom tooltip)
Chainable builder APIYes (chainable)No (steps prop)
Accessibility (ARIA, focus, keyboard)YesYes
Automated screen reader testsVoiceOver + NVDA, in CINone in its repository
LicenseMITMIT
  • Built in
  • Possible, with caveats
  • Not supported

Checked in September 2026 against React Joyride 3.2.0 and the current GlowTour.js docs. "Native integration" means components shipped by the project for that framework; "Official wrapper" means a project-maintained package around the core library; "Generic JS API" means the library is called from framework code directly.

React-only vs framework-agnostic

React Joyride supports React 16.8 through 19, with a <Joyride> component and a useJoyride hook. It does not target Vue, Angular or plain JavaScript pages.

GlowTour.js keeps tour logic in a framework-agnostic core, so the same workflow definition runs in React, Vue, Angular, Solid and vanilla JavaScript. Its React adapter supports React 18 and 19.

Vue and Angular support

If your organization runs Vue or Angular apps alongside React, React Joyride cannot be reused there. GlowTour.js provides native Vue components and Angular standalone components with the same builder API, keyboard shortcuts and ARIA semantics as its React adapter.

UI customization approach

React Joyride lets you replace its UI with your own React components through the tooltipComponent, beaconComponent and arrowComponent props, alongside styling options.

GlowTour.js offers composition primitives (Root, Popover, Header, Content, Footer and trigger components) in every supported framework, plus --glow-tour-* CSS custom properties for theming.

Accessibility, SSR and licensing

Both document focus trapping, keyboard navigation and ARIA support, and both are MIT licensed. React Joyride describes itself as SSR-safe with Next.js and Remix; GlowTour.js verifies server rendering and hydration for its React, Vue and Solid adapters, including a production Next.js app.

Should you choose GlowTour.js or React Joyride?

  • Choose React Joyride if your application is React-only and you want a React-focused library, including support for React versions before 18.
  • Choose GlowTour.js if you need the same tours across React, Vue or Angular, or want to compose the popover UI from components with a builder-style API.

GlowTour.js is newer than React Joyride and ships as ESM only. Server rendering is verified for its React, Vue, Solid and Angular adapters; check the compatibility page for the exact versions before adopting it. For every library side by side, see the best open-source product tour libraries.

Sources

GlowTour.js
CompatibilityBuilder APIAccessibility guideSSR guideGitHub
React Joyride
GitHub