Skip to content

Getting started

Install with npm

Use @playstep/web from your bundler, for single-page apps and any framework.

Terminal
npm i @playstep/web

Start PlayStep once, as early as your app boots:

TypeScript
import { playstep } from '@playstep/web'

playstep.init({ appKey: 'ps_pub_dev_your_key' })

Then tell it who is signed in, and report the events your guides react to:

TypeScript
playstep.identify(user.id, { plan: user.plan })
playstep.track('invoice_page_opened')

The package is ESM with TypeScript types. The guide UI is a separate chunk that your bundler loads only when a guide starts, so it adds about 3 KB to your main bundle.

Single-page apps

Client-side navigation is detected automatically: PlayStep listens for history.pushState and popstate, and reports a page view for each new path, which is what page_view triggers match. To report screens yourself, turn it off and call page:

TypeScript
playstep.init({ appKey: 'ps_pub_dev_your_key', autoPageViews: false })
router.afterEach((to) => playstep.page(to.path))

Server-side rendering

init is safe to import anywhere, but call it only in the browser (for example in a client-only plugin). The SDK never touches window until init runs.

Next steps

Mark your anchors, then build your first guide. Every method is in the web SDK reference.

Search the docs and guides.

PlayStep is coming soon

We're opening PlayStep to teams one at a time. Leave your name and email and we'll set up a demo.

We use your email only to arrange the demo. See the privacy policy.