A JavaScript library for creating custom user onboarding tours and guided walkthroughs in web applications.
Shepherd is a JavaScript library that helps developers create interactive user onboarding tours and guided walkthroughs for web applications. It solves the problem of user confusion in complex interfaces by providing step-by-step contextual guidance directly within the app. The library enables teams to drive adoption and reduce support requests through self-explanatory tours.
Web developers and product teams building applications that require user onboarding, feature announcements, or interactive training experiences. Particularly useful for SaaS products, enterprise software, and applications with complex workflows.
Developers choose Shepherd for its framework-agnostic approach, extensive customization options, and proven reliability in production environments. Unlike rigid commercial solutions, it offers full control over tour design and behavior while maintaining accessibility standards.
Guide your users through a tour of your app
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Shepherd works with React, Angular, Vue.js, Ember, ES Modules, or plain JavaScript, as evidenced by the README listing official wrappers and community plugins for each framework.
With minimal default styles, developers can fully customize tour appearance and behavior, allowing integration into any design system without restrictive presets.
The library includes proper focus management and ARIA attributes, making tours usable with screen readers and compliant with accessibility standards.
Used by projects like Drupal and LogSeq, Shepherd has been tested in real-world applications, indicating stability and community trust.
Commercial use requires a paid license under AGPL-3.0 terms, which can add legal overhead and cost for revenue-generating companies.
Minimal default styles mean significant CSS work is needed for polished tours, and framework wrappers may require additional configuration compared to drop-in solutions.
The core library lacks built-in analytics, A/B testing, or advanced user behavior tracking, requiring custom implementations for such needs.