PHPackages                             combindma/mailcoach-skeleton - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. combindma/mailcoach-skeleton

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

combindma/mailcoach-skeleton
============================

A useful package to have user management in your mailcoach project

2.2.0(1mo ago)0351↓50%MITPHPPHP ^8.4CI failing

Since Feb 12Pushed 1mo agoCompare

[ Source](https://github.com/combindma/mailcoach-skeleton)[ Packagist](https://packagist.org/packages/combindma/mailcoach-skeleton)[ Docs](https://github.com/combindma/mailcoach-skeleton)[ RSS](/packages/combindma-mailcoach-skeleton/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (36)Versions (21)Used By (0)

A useful package to have user management in your mailcoach project
==================================================================

[](#a-useful-package-to-have-user-management-in-your-mailcoach-project)

[![Latest Version on Packagist](https://camo.githubusercontent.com/515684664f38e411dd18f4599003f78709c4f37992a6b293ccdec3a3f7d652f2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f6d62696e646d612f6d61696c636f6163682d736b656c65746f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/combindma/mailcoach-skeleton)[![GitHub Tests Action Status](https://camo.githubusercontent.com/ea28582f8c644957ca28b82f9ab25589c768505e6cc558390de0cf46e38dc584/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f636f6d62696e646d612f6d61696c636f6163682d736b656c65746f6e2f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/combindma/mailcoach-skeleton/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/1fb372df45508a294513396946db69db1790ace6f15abde1f061fc4b5c00af6f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f636f6d62696e646d612f6d61696c636f6163682d736b656c65746f6e2f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/combindma/mailcoach-skeleton/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/c80052e75ff20c49701097ca7153c1dc6c6175e039be0b620735cdba93d36752/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f6d62696e646d612f6d61696c636f6163682d736b656c65746f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/combindma/mailcoach-skeleton)

About Combind Agency
--------------------

[](#about-combind-agency)

[Combine Agency](https://combind.ma?utm_source=github&utm_medium=banner&utm_campaign=package_name) is a leading web development agency specializing in building innovative and high-performance web applications using modern technologies. Our experienced team of developers, designers, and project managers is dedicated to providing top-notch services tailored to the unique needs of our clients.

If you need assistance with your next project or would like to discuss a custom solution, please feel free to [contact us](mailto:hello@combind.ma) or visit our [website](https://combind.ma?utm_source=github&utm_medium=banner&utm_campaign=package_name) for more information about our services. Let's build something amazing together!

Getting Started
---------------

[](#getting-started)

Before you begin, make sure you have the Mailcoach package installed and configured in your new Laravel project. You can find the installation instructions [here](https://www.mailcoach.app/self-hosted/documentation/v8/getting-started/installation/in-an-existing-laravel-app).

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

[](#installation)

You can install the package via composer:

```
composer require combindma/mailcoach-skeleton
```

Update the User model to this:

```
namespace App\Models;

use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Laravel\Sanctum\PersonalAccessToken;
use Spatie\Mailcoach\Domain\Settings\Models\MailcoachUser;
use Spatie\Mailcoach\Domain\Shared\Traits\UsesMailcoachModels;
use Spatie\WelcomeNotification\ReceivesWelcomeNotification;

class User extends Authenticatable implements MailcoachUser
{
    use HasApiTokens;
    use Notifiable;
    use ReceivesWelcomeNotification;
    use UsesMailcoachModels;

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

    protected $hidden = [
        'password',
        'remember_token',
    ];

    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
        ];
    }

    public function personalAccessTokens(): MorphMany
    {
        return $this->morphMany(PersonalAccessToken::class, 'tokenable');
    }

    public function canViewMailcoach(): bool
    {
        return true;
    }
}
```

Add this to your file app/providers/AppServiceProvider.php:

```
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Combindma\MailcoachSkeleton\Listeners\SetupMailcoach;
use Spatie\Mailcoach\Domain\Shared\Events\ServingMailcoach;

public function boot(): void
{
        Event::listen(
            Registered::class,
            SendEmailVerificationNotification::class,
        );
        Event::listen(
            ServingMailcoach::class,
            SetupMailcoach::class,
        );

        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
        });

        Route::mailcoach('/app');
}
```

You must register the routes needed. Add this in your web file:

```
MailcoachSkeleton::routes('app');
```

Add these middlewares to boostrap/app:

```
->withMiddleware(function (Middleware $middleware) {
        $middleware->redirectGuestsTo(fn () => route('login'));
        $middleware->redirectUsersTo('/dashboard');
        $middleware->throttleApi();
    })
```

You can publish and run Laravel default migrations ('create\_users\_table', 'create\_sessions\_table', 'create\_password\_resets\_table', 'create\_jobs\_table', 'create\_failed\_jobs\_table') with:

```
php artisan vendor:publish --tag="mailcoach-skeleton-migrations"
php artisan migrate
```

Optionally, you can publish the views using

```
php artisan vendor:publish --tag="mailcoach-skeleton-views"
```

Creating the first user
-----------------------

[](#creating-the-first-user)

After that you can create an initial user by executing `php artisan mailcoach:make-user`. You can use the created user to login at Mailcoach. New user can be made on the users screen in mailcoach.

Registering custom action: wait for a date
------------------------------------------

[](#registering-custom-action-wait-for-a-date)

You can register our custom action by adding the classname to the mailcoach.automation.flows.actions config key.

```
[
    'actions' => AutomationAction::defaultActions()->merge([
               \Combindma\MailcoachSkeleton\Actions\WaitForDateAction::class,
    ])->toArray(),
]
```

Credits
-------

[](#credits)

- [Combind](https://github.com/combindma)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance88

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~40 days

Recently: every ~93 days

Total

20

Last Release

58d ago

Major Versions

1.3.2 → 2.0.02025-09-22

PHP version history (2 changes)1.0.0PHP ^8.3

2.0.0PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/31b418bcbabafab33631fd151a64d3e18035f728ad195814aa4656d862610fcd?d=identicon)[combindma](/maintainers/combindma)

---

Top Contributors

[![omarherri](https://avatars.githubusercontent.com/u/12627384?v=4)](https://github.com/omarherri "omarherri (1 commits)")

---

Tags

laravelcombindmailcoach-skeleton

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/combindma-mailcoach-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/combindma-mailcoach-skeleton/health.svg)](https://phpackages.com/packages/combindma-mailcoach-skeleton)
```

###  Alternatives

[spatie/laravel-permission

Permission handling for Laravel 12 and up

12.9k89.8M1.0k](/packages/spatie-laravel-permission)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[jeffgreco13/filament-breezy

A custom package for Filament with login flow, profile and teams support.

1.0k1.7M41](/packages/jeffgreco13-filament-breezy)[spatie/laravel-login-link

Quickly login to your local environment

4381.2M1](/packages/spatie-laravel-login-link)[ryangjchandler/laravel-cloudflare-turnstile

A simple package to help integrate Cloudflare Turnstile.

438896.6k2](/packages/ryangjchandler-laravel-cloudflare-turnstile)[spatie/laravel-passkeys

Use passkeys in your Laravel app

444494.4k16](/packages/spatie-laravel-passkeys)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
