A Package for Onboarding Users in Laravel Apps

Admin   Laravel   714  2022-06-30 21:30:02

Laravel Onboard is a Laravel package to help track user onboarding steps created by Spatie:

Here's a quick example taken from the project readme on using this package to create onboarding steps:

1use App\User;
2use Spatie\Onboard\Facades\Onboard;
3 
4// You can add onboarding steps in a `boot()` method within a service provider
5Onboard::addStep('Complete Profile')
6 ->link('/profile')
7 ->cta('Complete')
8 ->completeIf(function (User $user) {
9 return $user->profile->isComplete();
10 });
11 
12Onboard::addStep('Create Your First Post')
13 ->link('/post/create')
14 ->cta('Create Post')
15 ->completeIf(function (User $user) {
16 return $user->posts->count() > 0;
17 });

To get a user's onboarding status—among other things—the package has a nice API for accessing things like percentage complete, in progress, finished, and details about individual steps:

1/** @var \Spatie\Onboard\OnboardingManager $onboarding **/
2$onboarding = Auth::user()->onboarding();
3 
4$onboarding->inProgress();
5 
6$onboarding->percentageCompleted();
7 
8$onboarding->finished();
9 
10$onboarding->steps()->each(function($step) {
11 $step->title;
12 $step->cta;
13 $step->link;
14 $step->complete();
15 $step->incomplete();
16});

Additionally, this package supports features such as:

  • Conditionally excluding steps with custom logic
  • Defining custom attributes on a step
  • Use middleware to ensure a user completes onboarding before they are allowed to use certain features
  • And more

You can get started with this package by checking it out on GitHub at spatie/laravel-onboard. Their blog post can also give you some examples and further details on how you can use this package.

Source: laravel-news.com