Skip to main content

Product and scope

Define the user, core job, v1 boundary, and success criteria.

Product and scope

Product thesis

Nuxt Tour is for Nuxt and Vue developers who need a reliable guided product tour without coordinating selectors, routes, overlays, focus, and cleanup in application code.

The core workflow has four concepts:

defineTour()      describes the journey
target IDs        locate application elements
<TourHost />      renders the active tour
useNuxtTour()     controls a discovered Nuxt journey
useTour()         controls a plain Vue definition

The package wins when this workflow feels normal to a Vue developer and remains reliable in a real Nuxt application.

Accepted v1 jobs

Version 1 must support:

  • targetless centered steps;
  • semantic targets that can mount late;
  • a linear tour with conditional steps;
  • navigation to the destination step's Nuxt route;
  • asynchronous preparation with guaranteed cleanup;
  • one active tour per application;
  • a good default card and a full-card slot;
  • modal, target-only, and non-modal interaction;
  • keyboard operation, focus restoration, and reduced motion;
  • typed events and stable error codes; and
  • generated tour, step, and semantic target ID types from app/tours/.

Explicit non-goals

Version 1 does not include persistence, automatic start rules, analytics providers, hints, checklists, surveys, experiments, a visual editor, graph navigation, multiple concurrent tours, iframe targets, multiple spotlight holes, arbitrary DOM-event advancement, or a public framework-neutral core.

Applications can store completion and call start() themselves. Applications can send analytics from typed events. These boundaries avoid a second source of truth for product state.

Product acceptance criteria

A new consumer must be able to complete the quick start from one example. All controller navigation methods must settle only after the destination step is active or the transition has failed cleanly. A failed or cancelled transition must leave no observer, listener, overlay, focus trap, or preparation cleanup behind.

The package installs as one npm package. The Nuxt root export and /vue export share one runtime contract and one version.