A Package for Onboarding Users in Laravel Apps

https://laravelnews.imgix.net/images/laravel-onboard.png?ixlib=php-3.3.1

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.

Laravel News