Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Driver Js Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: This is a Laravel-specific wrapper around Driver.js 1.x. It renders tour definitions from PHP/Blade into browser-side JavaScript, with first-class support for named tours, Alpine events, Livewire dispatch, and a StartsTours trait. It fits Laravel applications that already use Blade plus Alpine or Livewire for interactive UI. It is not a general PHP package and provides little value outside Laravel.
  • Integration feasibility: Installation is a single Composer require. The package now targets Laravel 12 and 13 on PHP 8.3+, which is a narrow and forward-leaning compatibility window. Teams on Laravel 10 or 11, or PHP 8.2, cannot adopt this release. For teams already on the target stack, integration appears straightforward: publish config, include @driverJsAssets, define tours, and wire triggers through data attributes, Alpine, or Livewire.
  • Technical risk: v1.0.0 is effectively the first functional release; v0.1.0 was broken against current Driver.js and could not install on Laravel 12/13. That makes this an early-adoption package, not a mature dependency. Default CDN loading is mitigated by SRI hashes and a assets.cdn = false escape hatch, but CDN availability and CSP configuration remain operational risks. The Livewire wire:navigate support and CSP nonce handling are positive signals, but they need verification in the actual application shell.
  • Key questions:
    • What is the maintainer’s support policy and test matrix for Laravel 12/13, PHP 8.3+, and Driver.js 1.x updates?
    • Is there automated browser testing for tours, hooks, Livewire navigation, and CSP nonce behavior?
    • What is the accessibility story for keyboard navigation, focus management, and screen readers?
    • How are hook names and window.functionName references validated and sanitized?
    • Will Laravel 11 or PHP 8.2 support be backported, or is this intentionally bleeding-edge?
    • What is the migration guidance for the few v0.1.0 users, given that v0.1.0 never functioned?

Integration Approach

  • Stack fit: Best fit is a Laravel 12/13 application using Blade, Alpine.js, and optionally Livewire. Teams using Inertia, React, or Vue as the primary frontend should evaluate whether a thin Driver.js integration is simpler than adding a Laravel package. Teams on older Laravel or PHP versions should defer adoption or look for an alternative.
  • Migration path:
    • From v0.1.0: treat this as a reimplementation rather than an upgrade. Move Driver.js options under defaults and CDN settings under assets in config/driver-js.php. Replace removed PHP builder calls (drive(), destroy(), moveNext(), movePrevious()) with JavaScript control via LaravelDriverJs.active(). Replace deprecated addStep(), defineSteps(), opacity(), and onHighlighting() with step(), steps(), overlayOpacity(), and on('onHighlightStarted', ...).
    • From no package: greenfield integration. Confirm PHP and Laravel versions, publish config, choose CDN or bundled assets, define named tours, wire start triggers, and test CSP and Livewire navigation.
  • Compatibility: The package explicitly drops Laravel 10/11 and PHP 8.2. CI must be updated before adoption. Driver.js is pinned to 1.10.2 with SRI; teams that bundle assets must keep their own version pinning and integrity process.
  • Sequencing:
    1. Confirm Laravel 12/13 and PHP 8.3+ in the target environment and CI.
    2. Add the package and publish configuration.
    3. Decide CDN versus self-bundled assets; configure CSP nonce if applicable.
    4. Define a small pilot tour using Driver::tour(), once(), or manual().
    5. Wire triggers through data-driver-start, Alpine $dispatch, or Livewire dispatch.
    6. Test wire:navigate, CSP, localStorage once behavior, and fallback when assets fail.
    7. Replace deprecated builder methods before the next major release.
    8. Roll out to non-critical onboarding flows first, then expand.

Operational Impact

  • Maintenance: Expect early-stage maintenance. Pin the package version, watch the changelog, and budget for upgrades when Laravel or Driver.js changes. Because the package tracks Laravel 12/13 and Driver.js 1.x closely, version drift is likely to require periodic attention.
  • Support: Support is likely community/GitHub-based with no commercial SLA. For customer-facing or revenue-critical tours, establish an internal owner and a fallback path. Do not assume the maintainer will provide timely fixes for browser or CSP regressions.
  • Scaling: Runtime scaling is not a major concern because tours execute client-side. The operational scaling questions are asset delivery and page weight: CDN reliability, bundled asset size, and the number of tour definitions rendered per page. Large numbers of tours or steps can bloat HTML/JS and slow initial interaction.
  • Failure modes:
    • CDN outage or blocked CDN: tours fail to load. SRI protects integrity but not availability; bundle assets locally for critical flows.
    • CSP misconfiguration: the nonce directive must be used correctly, or scripts will be blocked.
    • Livewire wire:navigate: listeners or tour state may duplicate or fail to reinitialize after navigation.
    • localStorage once semantics: returning visitors will not see a tour again unless the key is changed; this is a product behavior risk, not just a technical one.
    • Deprecated methods: they still work now but are scheduled for removal, creating future upgrade work.
    • Driver.js API drift: the package is pinned, but future Driver.js majors may require wrapper changes.
  • Ramp-up: Laravel developers can define basic tours quickly. Advanced usage—hooks, LaravelDriverJs.active(), CSP, Livewire navigation, and custom asset bundling—requires frontend JavaScript familiarity. QA should include cross-browser checks, keyboard/accessibility review, and a deliberate test of the asset-failure fallback. A pilot on a low-risk onboarding tour is the right first step.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels