amjadiqbal/laravel-driver-js
A Laravel wrapper for Driver.js that adds guided product tours and onboarding highlights to your Blade views. Define tour steps in PHP, publish the config, and highlight page elements with simple helpers—no custom JavaScript required.
once('welcome-v1') let PMs re-surface a tour when a feature materially changes by bumping the key—useful for launch announcements and changelog-style spotlights.manual()/autoStart(false) supports registering tours that product decides to trigger contextually rather than automatically.highlight() supports single-element hints, not just full tours—useful for pointing at new controls, permissions, or billing actions without a multi-step flow.on($hook, 'window.fn') exposes Driver.js lifecycle hooks, enabling PMs to define completion/drop-off events and evaluate whether tours actually improve activation.wire:navigate make this suitable for admin panels and internal tools built with the Laravel/Livewire stack.Consider adoption when:
assets.cdn = false.@driverJsAssets supports nonces when Vite::useCspNonce() is set.Look elsewhere or defer when:
once() uses localStorage, so it is browser-local, not account-level.Note: v0.1.0 was non-functional against current Driver.js and could not install on Laravel 12/13. Treat v1.0.0 as the first usable release, not as a migration from a working production baseline.
For executives: This gives us an inexpensive way to add in-app guided tours for onboarding and feature launches inside our existing Laravel product. It avoids a subscription product-tour vendor for basic needs and keeps user tour content in our codebase. The main cost is implementation and content authoring, not licensing.
For engineering: v1.0.0 is a corrected wrapper around Driver.js 1.10.2—previous v0.1.0 was broken (bad CDN URL, wrong Driver.js API, no Laravel 12/13 support). It adds named tours, button/Alpine/Livewire triggers, once() local persistence, option validation, lifecycle hooks, CSP nonce support, SRI-pinned CDN assets, and wire:navigate compatibility. Requirements are PHP 8.3+ and Laravel 12/13. Deprecated v0.1.0 methods remain but should not be used; several unused PHP builder methods were removed. Treat this as a new integration, not an upgrade path from working functionality.
For product and support stakeholders: We can ship targeted onboarding without waiting on a vendor procurement cycle. Tours can be re-shown after meaningful feature changes by versioning the once() key, and hooks let us measure completion if we instrument them. The trade-off is that persistence is browser-local, so it is best suited to simple guided tours rather than sophisticated user-segmented onboarding.
How can I help you explore Laravel packages today?