PHPackages                             netizens-gaurav/filament-onboarding-user - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. netizens-gaurav/filament-onboarding-user

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

netizens-gaurav/filament-onboarding-user
========================================

A comprehensive onboarding solution for Filament applications with support for both single-tenant and multi-tenant SaaS platforms

v2.3(5mo ago)292[2 PRs](https://github.com/netizens-gaurav/filament-onboarding-user/pulls)MITPHPPHP ^8.2CI passing

Since Nov 21Pushed 1mo agoCompare

[ Source](https://github.com/netizens-gaurav/filament-onboarding-user)[ Packagist](https://packagist.org/packages/netizens-gaurav/filament-onboarding-user)[ Docs](https://github.com/netizens-gaurav/filament-onboarding-user)[ GitHub Sponsors](https://github.com/netizens-gaurav)[ RSS](/packages/netizens-gaurav-filament-onboarding-user/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (13)Versions (12)Used By (0)

Filament Onboarding User
========================

[](#filament-onboarding-user)

Simple, flexible onboarding for Filament v4 applications. Users complete onboarding steps before accessing your app.

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 11+
- Filament 4.0+

Installation
------------

[](#installation)

```
composer require netizens-gaurav/filament-onboarding-user
```

Run installation:

```
php artisan filament-onboarding:install
```

Quick Start
-----------

[](#quick-start)

### 1. Add Trait to User Model

[](#1-add-trait-to-user-model)

```
use Netizensgaurav\FilamentOnboarding\Traits\HasOnboarding;

class User extends Authenticatable
{
    use HasOnboarding;

    protected $fillable = [
        'name', 'email', 'password',
        'onboarding_completed_at', 'onboarding_skipped',
    ];

    protected $casts = [
        'onboarding_completed_at' => 'datetime',
        'onboarding_skipped' => 'boolean',
    ];
}
```

### 2. Register Plugin

[](#2-register-plugin)

In your `PanelProvider`:

```
use Netizensgaurav\FilamentOnboarding\FilamentOnboardingPlugin;
use Netizensgaurav\FilamentOnboarding\Middleware\EnsureOnboardingComplete;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            FilamentOnboardingPlugin::make()
                ->mandatoryOnboarding(true) // Force completion
                ->skippable(false) // Don't allow skipping
        )
        ->authMiddleware([
            Authenticate::class,
            EnsureOnboardingComplete::class, // Add this
        ]);
}
```

**Done!** New users will see a simple profile form (name + email).

---

Customization
-------------

[](#customization)

### Create Your Own Onboarding

[](#create-your-own-onboarding)

The default onboarding just asks for name and email. To customize:

**Step 1:** Create your onboarding page:

```
php artisan make:filament-page CustomOnboarding --type=custom
```

**Step 2:** Extend the base class:

```
