explicitdev/laravel-onboarding

Define Laravel onboarding flows as code and track progress without scattered booleans.

Maintainers

Package info

gitlab.com/explicitdev/laravel-onboarding

pkg:composer/explicitdev/laravel-onboarding

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.0 2026-05-06 21:00 UTC

This package is auto-updated.

Last update: 2026-05-07 02:01:30 UTC


README

Pipeline Status License: MIT Laravel

Define onboarding flows as code. Track progress without scattered booleans.

Every Laravel product eventually grows a handful of profile_completed, invited_team, and seen_dashboard booleans. Laravel Onboarding turns that scattered state into versioned flow classes, persisted progress, lifecycle events, and UI helpers you can reason about.

composer require explicitdev/laravel-onboarding
php artisan vendor:publish --tag=onboarding-config
php artisan migrate
namespace App\Onboarding;

use App\Models\User;
use ExplicitDev\Onboarding\Flows\OnboardingFlow;
use ExplicitDev\Onboarding\Steps\Step;

class NewUserFlow extends OnboardingFlow
{
    public function name(): string
    {
        return 'new-user';
    }

    public function subject(): string
    {
        return User::class;
    }

    public function steps(): array
    {
        return [
            Step::make('complete_profile')
                ->title('Complete your profile')
                ->completedWhen(fn (User $user): bool => filled($user->name)),

            Step::make('invite_teammate')
                ->title('Invite a teammate')
                ->completedWhen(fn (User $user): bool => $user->teammates()->exists())
                ->skippable(),
        ];
    }
}
use App\Onboarding\NewUserFlow;
use ExplicitDev\Onboarding\Facades\Onboarding;

Onboarding::register(NewUserFlow::class);

$progress = Onboarding::for($user)->flow('new-user');
$progress->percentage();
$progress->nextStep();

Features

  • Flows live in version control as PHP classes
  • Multiple concurrent flows per user, team, or any Eloquent model
  • Skippable and required steps with lifecycle hooks
  • Persisted or live evaluation per flow
  • Shared dashboard data service and admin dashboard presets
  • Cached progress snapshots with mutation-aware invalidation
  • Blade directives and basic, publishable Blade components
  • Artisan tooling for operations and debugging
  • MIT licensed

The free package intentionally keeps UI primitives simple: teams can use the headless progress API, publish the basic Blade views, and style the experience themselves. Polished dashboards, Filament/Nova panels, analytics, templates, and deeper integrations are good candidates for paid add-ons.

Commercial Add-Ons

The commercial add-on package family now exists as separate repos and has been validated internally through dogfood apps, GitLab tag pipelines, R2 release uploads, and the Explicit Development package registry:

  • explicitdev/laravel-onboarding-filament for Filament admin dashboards and progress management
  • explicitdev/laravel-onboarding-ui for polished customer-facing Blade and Tailwind-friendly onboarding screens
  • explicitdev/laravel-onboarding-nova for Nova teams
  • explicitdev/laravel-onboarding-backpack for Backpack teams
  • explicitdev/laravel-onboarding-blade-admin for lightweight Blade/Livewire admin screens

The core package includes the shared dashboard data service and preset model used by those admin adapters. Read Admin dashboards and reports for the core API, config settings, section names, and paid-package customization hooks.

They are active and available for purchase through Explicit Development at explicitdev.com/packages. The Laravel Onboarding product page is explicitdev.com/packages/laravel-onboarding.

Documentation

Start with the documentation index:

Support

Open bugs, install questions, documentation gaps, and feature requests in:

Testing The Package

composer test
composer analyse
composer format

Contributing

Please read CONTRIBUTING.md before opening an issue or merge request.

Security

Please review SECURITY.md for supported versions and vulnerability reporting.

Credits

  • Explicit Development
  • Inspired by earlier Laravel onboarding packages, especially calebporzio/onboard and spatie/laravel-onboard

License

Laravel Onboarding is open-sourced software licensed under the MIT license.