A no-code alternative to Intro.js, Shepherd.js and Driver.js
Intro.js, Shepherd.js and Driver.js are solid JavaScript libraries for step-by-step tours: you describe the steps in code and they draw the highlight and the popover. What they leave to you is everything around the tour — who sees it, when, whether they finished, and who edits the copy. Here is where that line falls, and when a library is still the better choice.
Clew vs a tour library, point by point
| Feature | Clew | Intro.js, Shepherd.js, Driver.js |
|---|---|---|
| What it is | Hosted onboarding tool: visual editor, targeting, analytics | A JavaScript library you call from your own code |
| Who edits a tour | PM, marketer or support — in a visual editor on the live page | A developer: steps live in the codebase, a copy change is a release |
| Who sees it, and when | Page rules, user properties, triggers and frequency, set in the editor | Whatever you build: targeting, triggers and “already seen” state are your code |
| Analytics | Views, completion, drop-off per step, broken-step alerts | None built in: you send events to your analytics yourself |
| A/B tests | Built in from Pro, with a significance check and “make B the main version” | Build it yourself |
| Formats | Tours, tooltips, modals, onboarding checklists | Step tours and element highlighting; the rest is yours to build |
| Licence | Cloud service; the self-hosted edition’s code is AGPL-3.0 or a commercial licence | Intro.js and Shepherd.js: AGPL-3.0 or a commercial licence; Driver.js: MIT |
| Price | Free forever (1 site, 3 published tours, no visitor caps); paid from $14.99/mo | Driver.js is free (MIT); Intro.js and Shepherd.js sell commercial licences |
| Where it runs | Our EU cloud, or your own servers (self-hosted) | Inside your app bundle, no third-party service |
Comparison based on public information as of September 2026 — the vendors' own pricing, product and help pages. Features and prices change; if something here is outdated or inaccurate, email hello@getclew.io and we will fix it.
What tour libraries do well
- Full control. The tour is your code: any markup, any styling, any behaviour you are willing to write.
- No external service. The library ships in your bundle. There is no vendor script, no vendor account, and nothing leaves your app.
- Versioned with the product. A tour changes in the same pull request as the screen it describes, and code review sees both.
- Low cost to start. Driver.js is MIT-licensed; Intro.js and Shepherd.js are free under the AGPL, with commercial licences for commercial use.
Where a library stops
None of this is a flaw in the libraries: it is simply outside what a library does. But it is the work that decides whether onboarding improves after launch.
- Every copy change is a release. A product manager who wants to reword step 2 files a ticket and waits for the next deploy. In practice the first draft becomes the final version.
- Targeting is your code. “New users only”, “admins on the billing page”, “once per person”, “on the third visit”: each rule means code plus somewhere to store who has already seen what.
- No analytics. To know how many people finish the tour, or which step loses them, you wire events into your analytics and build the funnel yourself.
- No A/B tests. Comparing two versions of a tour means assignment logic, sticky variants and a significance calculation — a small project of its own.
- Silent breakage. When a redesign renames a class, the step loses its element. Nobody notices until a user complains.
- Only developers can touch it. The people who see the problem — support, product, marketing — can’t fix it themselves.
When Clew fits better
- Non-developers should build and edit tours, tooltips, modals and checklists on the live page, without a release.
- You want per-step funnels and alerts when a step can’t find its element after a front-end release.
- You want to A/B test two versions of a tour and keep the one that gets finished more often.
- You need targeting by page, user property, trigger and frequency without writing it.
- You still want control over data: Clew can run on your own servers (self-hosted).
Clew is web-only and loads as one script from its own URL; it is not a library you import.
Moving a library tour to Clew
- Keep your anchors. If your steps point at
data-tourattributes, leave them: the Clew editor picks them first when you click an element. - Add the script tag once, in the root HTML or the root layout of your app. In a single-page app the widget follows route changes itself; the React install guide shows Vite, Create React App and Next.js.
- Rebuild the steps in the editor: click each element on the live page and paste the copy from your old tour definition.
- Replace the start call. Tours usually start by themselves from the page and audience rules. If a button (“Take the tour”) launched the old tour, call Clew instead:
document.querySelector('[data-tour="take-tour"]')
.addEventListener('click', () => Clew.show('welcome-tour'));- Remove the library and its styles once the new tour is published.

A hint inside your product
A tour, tooltip, checklist or modal — built in the visual editor and shown by URL, segment, trigger and frequency. A product manager or marketer edits it, with no release.
This is an illustrative scenario, not a real customer. Real customer stories will appear here as they happen.
Why teams pick Clew
Frequently asked questions
What is the best alternative to Intro.js?
It depends on who maintains the tours. If developers do and the tours rarely change, another library such as Shepherd.js or Driver.js is the closest swap. If product managers or marketers should edit tours without a release, and you want targeting and analytics, a no-code tool like Clew replaces the library and the code around it.
Is Driver.js or Shepherd.js free for commercial use?
Check each licence yourself before shipping. As of September 2026, Driver.js is published under the MIT licence. Shepherd.js is dual-licensed: AGPL-3.0, or a commercial licence that its licence file says you need for commercial use. Intro.js is likewise AGPL-3.0 or a commercial licence for commercial projects.
Can I keep my data-tour attributes if I move to Clew?
Yes. When you click an element in the Clew editor, it looks for a data-tour attribute first and uses a selector like [data-tour="invite"], so anchors you added for a library keep working.
Does Clew need an npm package?
No. Clew is one script tag loaded from its own URL, so fixes reach your app without a rebuild. In a React or Next.js app you add it once in the root layout — see the React install guide.
Do I need a developer to set up onboarding?
Only once — to paste one script tag into your page. After that, product managers, marketers or support build tours, tooltips and checklists in a visual editor right on the live page, with no releases.
Does Clew work with React, Vue and single-page apps?
Yes. The widget is dependency-free vanilla JavaScript; it survives route changes in single-page apps and does not pull in a framework.
Can I self-host Clew?
Yes. Run it in Docker or as a single Node process with a built-in SQLite database; visitor data stays on your servers. The self-hosted edition is a one-time license with a year of updates and support.
How much does Clew cost?
The Free plan is free forever: 1 site and up to 3 published tours, no visitor caps. Pro ($14.99/month, 20 published tours, no visitor caps) and Business come with a 14-day trial, no credit card. There is also a one-time Lifetime license and a self-hosted box.