jibaymcs/filament-tour
Bring Driver.js powered guided tours to your Filament panels. Register tours on any page with the HasTour trait and define steps with titles, descriptions, and element targets to elegantly onboard users.
Tour/Step, gated once per browser via local storage) for first-run education, and persistent Highlight icons that sit next to any element as contextual help. The split matters — tours handle launch, highlights handle long-tail "what does this field do" tickets. Decide which problem you're actually buying for before scoping.Tour::make(url:) / Tour::make(json:) lets tour definitions live in a JSON file in storage or behind a URL, which means tour copy, ordering, and button labels can change without a code deploy. That's a real roadmap fork: keep tours as developer-authored PHP in page classes (fast, type-safe, low governance) or move to JSON and treat tour content as an editorial asset. The latter implies ownership, review, and a place to store it.filament-tour::open-tour, filament-tour::open-highlight) plus dispatchOnNext means tours can be triggered from a button, a changelog modal, or a post-signup redirect — useful for announcing new features to existing users, not just new-user onboarding.composer require, buy is clearly right if the maintenance risk is acceptable (see below).Gap to be aware of: there is no built-in analytics. The "show once" flag lives in the browser's local storage, not on the user record — so tour state doesn't follow a user across devices, and it resets when they clear storage. Completion, skip, and abandonment rates are not captured. Any decision that depends on measuring onboarding effectiveness needs instrumentation added on top, or a different tool.
Consider it when:
HasTour / HasHighlight traits — no database schema, no migrations, no new service.->visible(Closure) is enough for targeting (e.g., "only show if the user has zero posts"), and the once-per-browser gate is acceptable.Look elsewhere (or build thin in-house) when:
For executives: An MIT-licensed, low-cost way to add in-app product tours and contextual help to our admin panel. Adopting it is roughly a day of engineering plus content authoring, with no per-seat licensing and no database changes. The upside is faster user onboarding and fewer "how do I…" support tickets. The risk is concentrate: it's maintained by a single developer who has publicly stated they can't keep up. Mitigation is to pin the version and keep our usage behind a thin internal abstraction — if it dies, we replace the internals without touching page code. Recommended framing: adopt as a fast, reversible experiment with a time-boxed review, not as a long-term platform commitment.
For engineering: Install is composer require jibaymcs/filament-tour:"^N.0" matching the Filament major, register FilamentTourPlugin::make() on the panel, and use HasTour / HasHighlight on the pages you want covered. Tours are composed from fluent Tour::make() / Step::make() objects with CSS-selector targets; a built-in selector picker (Ctrl/Cmd+Space, disabled in production) speeds authoring. Config and views are publishable for customization. No migrations, no schema, no new services. Two engineering asks: wrap it behind our own contract so a fork or swap is a contained change, and audit keyboard/screen-reader behavior of the tour overlay before it reaches customers.
How can I help you explore Laravel packages today?