explaingit

shipshapecode/shepherd

13,734JavaScriptAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

JavaScript library for adding step-by-step guided tours to a website or web app, with ready-made wrappers for React, Angular, Vue, and Ember and minimal default styling so you can match your own design.

Mindmap

mindmap
  root((repo))
    What it does
      Guided product tours
      Step-by-step tooltips
      User onboarding
    Framework Support
      React
      Angular
      Vue
      Ember
    Licensing
      AGPL for open source
      Paid commercial license
    Use Cases
      SaaS onboarding
      Feature discovery
      Drupal site tours
    Audience
      Web developers
      SaaS builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add an onboarding tour to a SaaS web app that highlights key features one at a time for new users.

USE CASE 2

Build a step-by-step product walkthrough for a React app using the Shepherd React wrapper package.

USE CASE 3

Embed a feature discovery tour in a Drupal site using Shepherd's existing built-in Drupal integration.

USE CASE 4

Create a custom-styled guided tour that matches your product's design system by applying your own CSS.

Tech stack

JavaScriptTypeScriptReactAngularVueEmber

Getting it running

Difficulty · easy Time to first run · 30min

Commercial use requires a paid license from Shipshape Code, AGPL-3.0 applies for open-source projects.

Free for open-source and non-commercial projects under AGPL-3.0, commercial products require a separate paid license from Shipshape Code.

In plain English

Shepherd is a JavaScript library that lets you add guided tours to a website or web app. A guided tour is a series of highlighted steps that walk new users through features one at a time: a tooltip or popup appears over a button or section, explains what it does, and then the user moves on to the next step. This kind of onboarding is common in software-as-a-service products where users need to discover features on their own. You define a sequence of steps in code, each specifying which element to highlight, what text to show, and what buttons to include (such as Back, Next, or Done). Shepherd handles positioning the popups relative to the target elements, keeping them on screen, and advancing through the steps. The styling is minimal by default so you can apply your own CSS to match the look of your product. The library works with plain JavaScript and includes ready-made integrations for popular front-end frameworks: React, Angular, Vue, and Ember each have their own wrapper package. This means you can drop Shepherd into projects built on any of those frameworks without extra configuration work. Real-world users listed in the README include the Drupal content management system, LogSeq, and SimplePlanner. The Drupal project uses Shepherd to power its built-in module tours. Licensing is dual-track. Open-source and non-commercial projects can use Shepherd for free under the AGPL-3.0 license. Companies building commercial products or revenue-generating services need a separate commercial license, available at the project website. The distinction matters if you are building something you plan to charge for. The project is maintained by Shipshape Code and has a Discord community for questions and discussion.

Copy-paste prompts

Prompt 1
Add a 3-step onboarding tour to my React app using Shepherd that highlights the dashboard, settings page, and help button.
Prompt 2
Set up Shepherd in a Vue project to walk new users through the main features of my SaaS product, show me the basic step configuration.
Prompt 3
I am building a commercial SaaS product and want to use Shepherd, what license do I need and how do I get it?
Prompt 4
Show me how to define a Shepherd tour step that highlights a specific button, shows a tooltip with Next and Done buttons, and positions itself correctly on mobile.
Prompt 5
How do I conditionally show a Shepherd tour only to first-time users who have not yet completed onboarding in a React app?
Open on GitHub → Explain another repo

← shipshapecode on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.