Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ checks:
exclude_patterns:
- "dist/"
- "docs/"
- "jsdoc-template/"
- "landing/"
- "**/node_modules/"
- "**/test/"
Expand Down
999 changes: 0 additions & 999 deletions HISTORY.md

This file was deleted.

14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
[![Test Coverage](https://api.codeclimate.com/v1/badges/b295b0cc0d828ccc1b76/test_coverage)](https://codeclimate.com/github/shipshapecode/shepherd/test_coverage)
[![StackShare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/shepherd-js)

[Shepherd](https://shepherdjs.dev/) is an open source, fully featured, digital adoption platform (DAP) and user on-boarding service. Use our
hosted SaaS or deploy to your own infrastructure to run on-premise.
[Shepherd](https://shepherdjs.dev/) is an open source, fully featured, digital adoption platform (DAP) and user on-boarding service.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Minor grammar: hyphenate "open-source" when used as an adjective.

When "open source" is used as a compound adjective before a noun, it should be hyphenated.

📝 Suggested fix
-[Shepherd](https://shepherdjs.dev/) is an open source, fully featured, digital adoption platform (DAP) and user on-boarding service.
+[Shepherd](https://shepherdjs.dev/) is an open-source, fully featured, digital adoption platform (DAP) and user on-boarding service.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[Shepherd](https://shepherdjs.dev/) is an open source, fully featured, digital adoption platform (DAP) and user on-boarding service.
[Shepherd](https://shepherdjs.dev/) is an open-source, fully featured, digital adoption platform (DAP) and user on-boarding service.
🧰 Tools
🪛 LanguageTool

[grammar] ~18-~18: Use a hyphen to join words.
Context: ...erd](https://shepherdjs.dev/) is an open source, fully featured, digital adoption...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In `@README.md` at line 18, Update the sentence describing Shepherd to hyphenate
"open-source" when used as an adjective; change the phrase "[Shepherd] ... is an
open source, fully featured, digital adoption platform..." to use "open-source"
so the sentence reads "[Shepherd] ... is an open-source, fully featured, digital
adoption platform..." to correct the grammar in the README description.


Supported Browsers
----------------------------------------------------------
Expand Down Expand Up @@ -51,9 +50,6 @@ The Shepherd Standalone Library has been open source since the very beginning. C
#### [Vue Shepherd Wrapper](https://github.com/shipshapecode/vue-shepherd)
#### [Ember Shepherd Wrapper](https://github.com/RobbieTheWagner/ember-shepherd)

### Commercial license

If you want to use Shepherd for a commercial application, theme or plugin the commercial license is the appropriate license. With this option, your source code is kept proprietary. Purchase a commercial license at [shepherdjs.dev](http://shepherdjs.dev/pricing)

# White Glove Services

Expand Down Expand Up @@ -113,4 +109,12 @@ If you have a cool open-source library built on Shepherd, PR this doc.


## License

Shepherd.js is dual-licensed under AGPL-3.0 and a Commercial License.

- **Free for open source and non-commercial use** under AGPL-3.0
- **Commercial license required** for commercial products and revenue-generating companies

See [LICENSE.md](LICENSE.md) for complete details or visit [shepherdjs.dev/pricing](https://shepherdjs.dev/pricing) to purchase a commercial license.

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fshipshapecode%2Fshepherd.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fshipshapecode%2Fshepherd?ref=badge_large)
4 changes: 4 additions & 0 deletions docs-src/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ export default defineConfig({
{
label: 'Usage',
link: '/guides/usage/'
},
{
label: 'License & Pricing',
link: '/guides/license/'
}
]
},
Expand Down
4 changes: 4 additions & 0 deletions docs-src/src/content/docs/guides/install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ title: Installation

import { Tabs, TabItem } from '@astrojs/starlight/components';

:::note[License Information]
Shepherd.js is **free for open source and non-commercial use** under AGPL-3.0. Commercial projects require a commercial license. [Learn more about licensing →](/guides/license/)
:::

## Install Directly

<Tabs>
Expand Down
97 changes: 97 additions & 0 deletions docs-src/src/content/docs/guides/license.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
title: License & Pricing
description: Understanding Shepherd.js licensing and when you need a commercial license
---

Shepherd.js uses a **dual-licensing model** to support both open source and commercial use.

## Free Use - AGPL-3.0

Shepherd.js is **free for open source and non-commercial use** under the AGPL-3.0 license.

### Who Can Use Shepherd.js for Free?

✅ **Open Source Projects**
- Your project is open source under an AGPL-compatible license
- Your complete source code is publicly available
Comment on lines +6 to +16
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Tighten compound adjectives for clearer phrasing.
Minor copy edit: use “dual licensing” (or “dual‑licensed”) and “open‑source projects” when modifying a noun.

✏️ Suggested copy edits
-Shepherd.js uses a **dual-licensing model** to support both open source and commercial use.
+Shepherd.js uses a **dual licensing model** to support both open-source and commercial use.

-✅ **Open Source Projects**
-- Your project is open source under an AGPL-compatible license
+✅ **Open-Source Projects**
+- Your project is open source under an AGPL-compatible license
🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...dual-licensing model* to support both open source and commercial use. ## Free Use - AGPL...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~14-~14: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Who Can Use Shepherd.js for Free? ✅ Open Source Projects - Your project is open sourc...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

🤖 Prompt for AI Agents
In `@docs-src/src/content/docs/guides/license.mdx` around lines 6 - 16, The
wording uses inconsistent compound adjective forms; update the phrase
"dual-licensing model" to "dual licensing" or "dual‑licensed" (e.g., change
"Shepherd.js uses a **dual-licensing model**..." to "Shepherd.js is
dual‑licensed" or "Shepherd.js uses dual licensing") and change "Open Source
Projects" and instances like "open source" when used as a modifier to the
hyphenated form "open‑source projects" (e.g., in the "Who Can Use Shepherd.js
for Free?" section and the bullet "Your project is open source under an
AGPL-compatible license"), ensuring hyphenation is used for noun-modifying
phrases.


✅ **Personal & Non-Commercial Use**
- Personal projects, portfolios, and hobby websites
- Educational purposes (students, teachers, coursework)
- Academic research projects

✅ **Evaluation & Testing**
- Evaluating Shepherd.js for up to 30 days
- Development, testing, and staging environments during evaluation
- Proof-of-concept and demo projects

### AGPL-3.0 Requirements

When using Shepherd.js under AGPL-3.0, you must:
- Make your complete source code available if you distribute or provide your software over a network
- License your code under AGPL-3.0 or a compatible license
- Comply with all AGPL-3.0 terms

[Read the full AGPL-3.0 license text](https://github.com/shipshapecode/shepherd/blob/main/LICENSE.md)

---

## Commercial License

You **must purchase a commercial license** if:

❌ **Commercial Products & Services**
- You're building a commercial product, application, SaaS, or website that generates revenue
- Your company generates revenue (even if the specific project using Shepherd.js does not)
- You're using Shepherd.js in any customer-facing commercial application

❌ **Closed-Source Use**
- You cannot or don't want to open-source your code under AGPL-3.0
- You want to keep your source code proprietary
- You want to avoid AGPL's source code disclosure requirements

❌ **White-Label, Resale, or OEM Use**
- You're embedding Shepherd.js in a product you sell or distribute
- You're offering Shepherd.js as part of a commercial service or hosting
- You're using Shepherd.js in a product sold to other businesses

❌ **Internal Business Tools**
- You're using Shepherd.js for internal tools, dashboards, or admin panels in a revenue-generating company
- Even if the tool is not customer-facing, commercial licenses are required for for-profit companies

Comment on lines +10 to +61
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Clarify AGPL vs commercial requirements to avoid legal/usage confusion.

AGPL-3.0 allows commercial use as long as its obligations are met. The current wording implies all commercial use requires a paid license, which conflicts with standard AGPL terms and can mislead users. Recommend reframing: a commercial license is required only if the user can’t or won’t comply with AGPL obligations (e.g., source disclosure/network use).

✏️ Suggested wording adjustment
-Shepherd.js is **free for open source and non-commercial use** under the AGPL-3.0 license.
+Shepherd.js is **free to use under AGPL-3.0** as long as you comply with its obligations
+including source disclosure for network use.

-You **must purchase a commercial license** if:
+You **must purchase a commercial license** if you cannot or do not want to comply
+with AGPL-3.0 obligations, such as source disclosure.

-❌ **Commercial Products & Services**
-- You're building a commercial product, application, SaaS, or website that generates revenue
-- Your company generates revenue (even if the specific project using Shepherd.js does not)
-- You're using Shepherd.js in any customer-facing commercial application
+❌ **Commercial Use Without AGPL Compliance**
+- You want to keep your source code proprietary
+- You do not want to disclose source code for network use
+- You cannot license your modifications under AGPL-3.0 or a compatible license
🧰 Tools
🪛 LanguageTool

[uncategorized] ~14-~14: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Who Can Use Shepherd.js for Free? ✅ Open Source Projects - Your project is open sourc...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~51-~51: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...keep your source code proprietary - You want to avoid AGPL's source code disclosure req...

(REP_WANT_TO_VB)

🤖 Prompt for AI Agents
In `@docs-src/src/content/docs/guides/license.mdx` around lines 10 - 61, The
"Commercial License" section incorrectly implies all commercial use requires
payment; update the copy so the opening claim ("Shepherd.js is free for open
source and non-commercial use") and the "Commercial License" heading clearly
state that AGPL-3.0 does permit commercial use if the user complies with AGPL
obligations, and that a paid commercial license is required only when a user
cannot or will not meet those obligations (e.g., cannot disclose source when
distributing or providing the software over a network). Edit the "AGPL-3.0
Requirements" and the bullet list under "Commercial License" (referencing those
exact headings) to: 1) add a clarifying sentence that commercial deployment is
allowed under AGPL if you satisfy its terms, and 2) change the "You must
purchase a commercial license if" bullets to say "You must purchase a commercial
license if you cannot or will not comply with AGPL obligations (examples: ...)".
Ensure examples reference network distribution, closed-source intent, and
internal business tooling as scenarios that may trigger the need for a
commercial license.

### Benefits of Commercial License

- ✅ **No AGPL obligations** - Keep your code proprietary
- ✅ **Legal protection and indemnification**
- ✅ **Priority support and updates**
- ✅ **Lifetime license with no recurring fees**

[**View Pricing & Purchase →**](https://shepherdjs.dev/pricing)

---

## Still Not Sure?

If you're unsure whether you need a commercial license:

**When in doubt:** If your organization generates revenue, you likely need a commercial license.

**Contact us:** [[email protected]](mailto:[email protected])

---

## Framework Wrappers

### React Shepherd

The `react-shepherd` wrapper is licensed under MIT, but it depends on `shepherd.js` which is AGPL-3.0.

If you need a commercial license for Shepherd.js, you also need one when using the React wrapper.

### Other Wrappers

- [Angular Shepherd](https://github.com/shipshapecode/angular-shepherd)
- [Vue Shepherd](https://github.com/shipshapecode/vue-shepherd)
- [Ember Shepherd](https://github.com/RobbieTheWagner/ember-shepherd)

All wrappers depend on the core Shepherd.js library and inherit its licensing requirements.
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
"build": "pnpm -F shepherd.js build && pnpm -F '!shepherd.js' -F !landing -F !shepherd-docs build",
"cypress:install": "pnpm -F 'cypress-tests' cypress:install",
"dev": "pnpm watch",
"docs": "node_modules/.bin/jsdoc -c .jsdoc.js --verbose",
"lint": "pnpm -F '*' lint",
"lint:fix": "pnpm -F '*' lint:fix",
"lint:js": "pnpm -F '*' lint:js",
Expand Down
12 changes: 11 additions & 1 deletion packages/react/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,14 @@ The following configuration options for a tour can be set on the `useShepherd` h

## License

MIT
The `react-shepherd` wrapper library is licensed under **MIT**.

**However, `shepherd.js` (the underlying library) is licensed under AGPL-3.0** and requires a commercial license for commercial use.

### Shepherd.js Licensing

- **Free** for open source and non-commercial projects under AGPL-3.0
- **Commercial license required** for commercial products and revenue-generating companies

📄 [Read Shepherd.js License Details](../../LICENSE.md)
💳 [Purchase Commercial License](https://shepherdjs.dev/pricing)
4 changes: 4 additions & 0 deletions shepherd.js/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@
/npm-debug.log*
/stats.html
/yarn-error.log

# Auto-generated from root during build
README.md
LICENSE.md
1 change: 0 additions & 1 deletion shepherd.js/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,3 @@ yarn.lock
yarn-error.log

CONTRIBUTING.md
HISTORY.md
116 changes: 0 additions & 116 deletions shepherd.js/README.md

This file was deleted.

10 changes: 10 additions & 0 deletions shepherd.js/rollup.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,16 @@ export default [
stdio: 'inherit'
}
);

console.log('Copying README and LICENSE from root to shepherd.js');

await execaCommand(`cp ../README.md ./README.md`, {
stdio: 'inherit'
});

await execaCommand(`cp ../LICENSE.md ./LICENSE.md`, {
stdio: 'inherit'
});
}
}
]
Expand Down