Open Source · MIT License

One recording. Two jobs.

Trailguide started as a product tour tool. We made it double as a Playwright regression test in CI. Same JSON file. Zero extra work.

View Documentation

Free forever. No account required.

p.s. the confetti at the end is a built-in step type. One line of JSON.

welcome.json
Onboarding
User tour
in browser
CI Test
Playwright
regression
Philosophy

Why Trailguide exists

Most product tour tools charge per user, lock your content in their dashboard, and disappear when they shut down. We think that's broken.

You own your tours

Tours are JSON files in your repo. Review them in PRs. Roll back mistakes. Fork them for experiments. They're yours forever.

No surprise bills

The runtime is free for unlimited users. We'll never charge you based on how many people see your tours.

Works everywhere

React, Vue, Svelte, vanilla JS. If it runs in a browser, Trailguide works. No framework lock-in either.

The Old Way

  • Pay per monthly active user
  • Tutorials locked in vendor dashboard
  • No version control
  • Can't review changes in PRs
  • Tours break silently in production
  • Vendor goes down = tours gone

The Trailguide Way

  • Free runtime, unlimited users
  • Tutorials are JSON in your repo
  • Full Git history
  • Review tour changes like code
  • Same file runs as a CI test. Breaks caught before users see them.
  • You own everything
Quick Start

Ship a tour in 5 minutes

Three steps. No account required.

1

Install the package

npm install @trailguide/core
2

Create a trail file

// tours/welcome.json
{
  "id": "welcome",
  "title": "Welcome Tour",
  "steps": [
    {
      "target": "[data-trail-id='create-btn']",
      "title": "Start here",
      "content": "Click to create your first project.",
      "placement": "bottom"
    }
  ]
}
3

Start the tour

import { start } from '@trailguide/core';
import '@trailguide/core/dist/style.css';

fetch('/tours/welcome.json')
  .then(res => res.json())
  .then(trail => start(trail));
Ideal Fit

Built for teams who want control

Engineers set it up once. Then anyone on the team can build tours.

Good fit

  • Dev teams who want onboarding without a SaaS dependency
  • Product managers who want to ship and maintain tours without waiting on engineering
  • Customer success teams building walkthroughs for complex features
  • Teams that ship frequently and need tours that stay current as the app changes
  • Products that ship behind firewalls or on-prem
  • OSS maintainers documenting complex UIs
  • Teams tired of per-seat pricing

Not a fit

  • Teams with no engineering resources at all (the initial install requires a developer)
  • Teams who need marketing to deploy tours with zero engineer review
What You Get

Everything you need, nothing you don't

Git-Native

Tours are JSON files. Review changes in PRs, roll back mistakes, branch for experiments.

No Lock-In

You own your tour data. Export, migrate, or self-host forever. We can't hold your tutorials hostage.

No Per-User Pricing

The runtime is free. Forever. Show tours to a million users without paying a cent.

Developer-First

TypeScript types, React hooks, clean APIs. Built by developers who've used the clunky alternatives.

Themeable

CSS custom properties for every color, radius, and shadow. Match your brand with a few lines of CSS. Dark mode included.

Tiny Bundle

Under 13kb gzipped (JS + CSS). No analytics bloat, no tracking scripts, no third-party requests.

New · @trailguide/playwright

The only tour tool that also runs your tours as tests

Set any trail to Both mode. It shows onboarding tooltips to real users and runs as a Playwright regression test in CI. Automatically.

For users

The same trail file plays as the onboarding tooltip sequence your users see. Nothing changes about how you ship tours.

+

In CI

On every deploy, Playwright walks each step: clicking, filling, asserting. If a button moves or a selector breaks, the test fails before users hit it.

// playwright.config.ts — add once, covers every trail set to test/both mode
import { test } from '@playwright/test';
import { runTrail } from '@trailguide/playwright';
import welcomeTrail from './tours/welcome.json';

test('welcome tour', async ({ page }) => {
  await page.goto('https://myapp.com');
  await runTrail(page, welcomeTrail);
});
Actions
clickfilltypehover selectcheckdragscroll pressfocusfile uploadevaluate
Assertions
visiblehiddentextvalue urltitleattributecount screenshotcustom
Waits
network idleDOM readyselectortimeout
Tab handling
click to new tabswitch contextmulti-page flows
Try it free

No other product tour tool does this.

E2E Testing

Full E2E automation.
Not the enterprise price tag.

Codeless testing platforms charge per test, per seat, and per month — often hundreds or thousands of dollars. Trailguide's full test runner is included in Pro at $49/month. Unlimited tests. Unlimited team.

Write tests as JSON, not code

Any trail set to test mode is a Playwright test. No Playwright knowledge required. Click, fill, assert, wait — all defined in a JSON file your whole team can read and edit.

Tests don't need to be tours

Set a trail to test-only mode and it never shows a tooltip to users. It exists purely as a CI test. Use it to cover login flows, checkout paths, onboarding funnels — anything you'd pay a codeless testing platform to automate.

Tests live in your repo

No vendor dashboard to log into. No proprietary test format. Your tests are JSON files alongside your code, reviewed in PRs, rolled back with git, and owned by you forever.

$49/month. That's it.

No per-test limits. No usage tiers. The same flat rate that gets you the visual editor and analytics also gets you a full E2E test runner. $49/month, cancel anytime.

Typical codeless testing platform
× $500+ per month to start
× Per-seat or per-test pricing
× Tests locked in vendor dashboard
× No version control
× Separate tool from your product tours
Trailguide
$49/month flat
Unlimited tests, no seat limits
Tests are JSON files in your repo
Full git history, PR reviews
Tours and tests in one tool
Pro Feature

Know exactly where users drop off

Stop guessing. See real completion data for every trail.

Trail Analytics

Last 30 days
2,847 Tours Started
73% Completion Rate
1m 24s Avg. Duration
Step-by-Step Funnel
Welcome
100%
Create Project
89%
Add First Task
81%
Invite Team
52%
Complete
73%

Find the friction

See exactly which step loses users. In this example, "Invite Team" drops 29%. Maybe it needs clearer copy or a skip option.

Measure improvements

Ship a change, watch completion rates climb. No more hoping your onboarding works. Now you'll know.

Track over time

Daily and weekly trends show if your onboarding is getting better or worse. Catch regressions before they hurt.

Try Pro Analytics Free

14-day free trial · Cancel anytime

Pro Feature

Your app changes. Your tours need a home.

Pro gives your whole team a dashboard to build, maintain, and update trails as your product evolves, without touching the codebase.

A home your team comes back to

Every trail lives in the dashboard with a screenshot of each step taken at build time. Six months later, when your app has changed, anyone on your team can open the editor, see what each step used to look like, and fix it. No repo access, no developer needed.

Record a full flow in one click

Hit Record, click through your app, and every click becomes a trail step. An action quick-pick overlay appears near each element — choose Click, Hover, or Skip before committing. Hold Shift while clicking to capture instantly and keep navigating.

Point and click to select elements

No CSS selectors to write. Just click on any button, input, or element on your site and it's captured automatically.

Non-devs can own maintenance

Change a step title, fix a broken selector, reword an instruction, all from the editor. When you're done, push it back to GitHub or GitLab as a commit or PR. No repo access needed to make the change.

Preview the trail before you ship

Play through the full trail inside the editor. See every tooltip, highlight, and transition exactly as your users will.

Selector quality grades

Every captured element is graded Stable, Moderate, or Fragile, with hints to make brittle selectors production-safe.

Drag to reorder steps

Reorganize your flow instantly. Insert steps, move them around, delete what you don't need.

AI-assisted step authoring

Click ✦ Suggest on any step and Claude generates a title, body copy, and tooltip placement from the element's context. Accept everything or cherry-pick individual fields.

Trail Editor
1 Welcome message
2 Create first project
3 Invite your team
4 Set up integrations
+ Add step
Welcome to Acme!
Let's take a quick tour to get you started. This will only take a minute.
[data-tour="welcome"] Pick

Built for your whole team

Product Managers

Create onboarding flows without waiting for engineering sprints.

Customer Success

Build walkthroughs for tricky features that generate support tickets.

Developers

Review trails in PRs. The visual editor outputs clean JSON you can trust.

Try the Visual Editor

Exports to JSON you own.

Step Types
Pro Editor · Drag & Drop

Not just tooltips

Every trail is built from step types. Drag any of them into your flow from the editor toolbar. No code.

Tooltip

Point at any element. The classic guided step that highlights a button, field, or UI element and walks users through it.

Redirect

Navigate users to another URL mid-tour. Chain onboarding flows across multiple pages without breaking the sequence.

Delay

Pause before advancing. Wait for animations to finish, pages to load, or async operations to complete.

Plans

Simple pricing

The runtime is free forever. Pro adds the editor, test runner, analytics, and Git sync.

Open Source

$0 forever

Full power. Full control. No limits.

  • Runtime package for any framework
  • Unlimited users, unlimited tours
  • Recorder tool for capturing steps
  • Trail validation utilities
  • Self-host everything
  • MIT License
View on GitHub

No lock-in. Everything Pro produces is still just JSON files in your repo.

Ready to build better onboarding?

Start with the free open source runtime, or try the Pro Editor for visual editing and Git sync with GitHub or GitLab.

14-day free trial · Cancel anytime