Implements the Laravel Starter Kit's Teams functionality as a Filament plugin that takes over the panel's tenant system upon installation
FilaTeams — Laravel Starter Template
By LaravelDaily
FilaTeams is a Filament team management plugin developed by LaravelDaily that replicates the Laravel Starter Kit's team features (creating teams, switching teams, inviting members, role permissions) into a Filament panel.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Automatically creates a personal team upon registration and reuses Filament's built-in tenant switcher to switch between teams
The team settings page covers renaming, member management, email invitations, and team deletion (only for non-personal teams and only by the Owner)
Built-in Owner/Admin/Member roles and permission matrix, replaceable with custom enum classes via configuration
Invitation emails include an acceptance link; unauthenticated users log in first and then accept, and invitations expire after 7 days by default and are configurable
Provides configuration publishing and translation publishing commands to customize model classes, enum classes, and multilingual text
Template Details
FilaTeams is a team management plugin for Filament panels, authored by LaravelDaily. It brings the Teams functionality from the Laravel Starter Kit fully into Filament: a personal team is automatically created when a user registers ("{name}'s Team"), users can switch between multiple teams via Filament's built-in tenant switcher, and a team settings page is provided for renaming, managing members, inviting new members by email, and deleting teams.
The permission model includes three built-in roles: Owner, Admin, and Member, with clear permission boundaries: renaming is performed by Owner and Admin; deleting teams, adding or removing members, and changing member roles can only be done by Owner; creating and canceling invitations can be done by both Owner and Admin. The role and permission enums can be replaced with custom string enum classes by publishing the configuration file, requiring only the implementation of TeamRoleContract and TeamPermissionContract.
The invitation flow is as follows: an Owner or Admin sends an invitation by email from the team settings page, and the invitee receives an email containing an acceptance link; if already logged in and the email matches, they join the team directly, otherwise they are redirected to log in first and then return to the acceptance page. Invitations expire after 7 days by default, which can be adjusted in the configuration.
Installation prerequisites are PHP 8.2+, Laravel 12 or 13, and Filament 5, and it is recommended to install on a fresh Filament project immediately after running filament:install --panels, because the plugin creates its own database tables and takes over the panel's tenant system. For projects with existing users, the README provides an example of batch-creating personal teams via the CreateTeam action. At the database level, three tables are created: teams, team_members, and team_invitations, and a current_team_id field is added to the users table; the author states this structure is consistent with the Laravel 13 starter kit.
The project is MIT licensed and can be used, modified, commercialized, and distributed for free, provided the copyright and license notice are retained when distributing; third-party assets such as demo images require separate license verification.
Is it right for your project?
Use Cases
- Quickly gaining multi-team and member invitation capabilities on a fresh Filament panel project
- Backend systems that need to differentiate team management permissions by Owner/Admin/Member
- Projects that wish to use Filament's tenant switcher rather than building a custom team switching interface
- Business scenarios that need to replace team roles and permissions with their own enums
Suitable For
- Backend projects using Laravel 12 or 13 with Filament 5
- New projects that have just run filament:install --panels and have not yet built resources and pages
- Team collaboration backends that need email invitations with an expiration mechanism
- Developers who accept the MIT license and are willing to retain the copyright notice
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Environment requirements are PHP 8.2+, Laravel 12 or 13, and Filament 5; installation on a fresh Filament project is recommended
- 2
Install via composer require laraveldaily/filateams, then have the User model implement HasTeamMembership and use the HasTeams trait
- 3
Register FilaTeamsPlugin in the PanelProvider, ensure registration() is enabled, then run php artisan migrate
- 4
Projects with existing users need to manually create personal teams using the CreateTeam action, otherwise those users will have no team
- 5
Use vendor:publish to publish filateams-config and filateams-translations to adjust enums, models, invitation validity period, and text
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version in the public repository under the MIT license; the free scope applies to that version's code and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercialization, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The plugin is designed for fresh Filament projects and is recommended to be installed immediately after running filament:install --panels; because it creates its own database tables and takes over the panel's tenant system, it is best to complete installation before building resources and pages.
- When installing on a project with existing users, those existing users will not automatically have teams; you need to run the CreateTeam action example provided in the README to create personal teams for them.
- Usage requires the runtime environment requirements: PHP 8.2 or higher, Laravel 12 or 13, and Filament 5; it cannot be used if these are not met.
- Invitations expire after 7 days by default; the validity period can be adjusted by publishing the configuration; after expiration, invitation links become invalid.
- Team deletion is limited to non-personal teams and only the Owner role; personal teams cannot be deleted.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
This package is designed to be installed on a **fresh Filament project**, right after `filament:install --panels`.
Original README
If you install the package on a project that already has users, those users won't have teams yet.
Original README
- PHP 8.2+ - Laravel 12 or 13 - Filament 5
Original README
Invitations expire after 7 days (configurable)
Original README
https://github.com/LaravelDaily/FilaTeams/blob/main/LICENSE.mdhttps://github.com/LaravelDaily/FilaTeams/blob/main/README.mdDeleting the team (non-personal teams only, owner only)
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 75 / 100
- Technologies
- Laravel
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-04-09
- Screenshot last checked
- 2026-10-02
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 6c72bacb6a3cb0f7193972205304fb905fc1fbd33f31d62be7b2557556f32e30
2026-10-02T18:53:11.312Z
Source file / repository# FilaTeams
Team management plugin for Filament 5. This is the exact implementation of [Laravel 13 Starter Kit Teams](https://www.youtube.com/watch?v=mJtOxawILJk) functionality, just in Filament.
Adds full team functionality — creating teams, switching between them, inviting members, managing roles — wired into Filament's panel with zero configuration on your part.
---
## Package Demo
Here's a [7-minute YouTube video with package demo](https://www.youtube.com/watch?v=YlO_6ZI55ag).
For reference, I also have a [33-minute video course on Laravel 13 Teams customizations](https://laraveldaily.com/course/laravel-13-teams).
---
## Screenshots

---

---

---
## Requirements
- PHP 8.2+
- Laravel 12 or 13
- Filament 5
This package is designed to be installed on a **fresh Filament project**, right after `filament:install --panels`. It creates its own database tables and takes over the panel's tenancy system, so it's best to set it up before building your resources and pages on top.
---
## Installation
### 1. Install via Composer
```bash
composer require laraveldaily/filateams
```
### 2. Update your User model
Add the `HasTeamMembership` interface and `HasTeams` trait:
```php
use LaravelDaily\FilaTeams\Concerns\HasTeams;
use LaravelDaily\FilaTeams\Contracts\HasTeamMembership;
class User extends Authenticatable implements HasTeamMembership
{
use HasTeams;
// ... rest of your model
}
```
### 3. Register the plugin in your PanelProvider
```php
use LaravelDaily\FilaTeams\FilaTeamsPlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ... your existing config
->registration() // enable if not already
->plugin(FilaTeamsPlugin::make());
}
```
### 4. Run migrations
```bash
php artisan migrate
```
That's it. No additional configuration needed.
---
## What you get
- **Automatic personal team** — when a user registers, a personal team ("{name}'s Team") is created automatically
- **Team switcher** — Filament's built-in tenant switcher lets users switch between their teams
- **Create team** — available at `/admin/new`
- **Team settings page** — at `/admin/{team}/settings`, with sections for:
- Updating team name
- Managing members (change roles, remove members, leave team)
- Inviting new members by email
- Deleting the team (non-personal teams only, owner only)
- **Email invitations** — invited users receive an email with an accept link
- **Role-based permissions** — Owner, Admin, and Member roles with granular permissions
---
## Roles & Permissions
| Permission | Owner | Admin | Member |
|---|:---:|:---:|:---:|
| Update team name | Yes | Yes | - |
| Delete team | Yes | - | - |
| Add/remove members | Yes | - | - |
| Change member roles | Yes | - | - |
| Create invitations | Yes | Yes | - |
| Cancel invitations | Yes | Yes | - |
The built-in roles and permissions can be replaced entirely. Publish the config and point `enums.role` and `enums.permission` to your own string-backed enum classes that implement `TeamRoleContract` and `TeamPermissionContract`:
```php
// config/filateams.php
'enums' => [
'role' => App\Enums\MyTeamRole::class,
'permission' => App\Enums\MyTeamPermission::class,
],
```
See [`src/Contracts/TeamRoleContract.php`](src/Contracts/TeamRoleContract.php) for the full interface your custom role enum must satisfy.
---
## Invitation flow
1. An Owner or Admin invites a user by email from the team settings page
2. The invited user receives an email with an accept link
3. If they're logged in and the email matches — they're added to the team immediately
4. If they're not logged in — they're redirected to login first, then back to accept
5. Invitations expire after 7 days (configurable)
---
## For existing users
If you install the package on a project that already has users, those users won't have teams yet. Create personal teams for them:
```php
use App\Models\User;
use LaravelDaily\FilaTeams\Actions\CreateTeam;
$action = new CreateTeam;
User::whereDoesntHave('teams')->each(function ($user) use ($action) {
$action->handle($user, [
'name' => $user->name . "'s Team",
'is_personal' => true,
]);
});
```
You can run this in tinker or in a seeder/migration.
---
## Configuration
Publish the config file:
```bash
php artisan vendor:publish --tag=filateams-config
```
This creates `config/filateams.php`:
```php
return [
// Override the role and permission enum classes
'enums' => [
'role' => LaravelDaily\FilaTeams\Enums\TeamRole::class,
'permission' => LaravelDaily\FilaTeams\Enums\TeamPermission::class,
],
// Override model classes if you need to extend them
'models' => [
'team' => LaravelDaily\FilaTeams\Models\Team::class,
'membership' => LaravelDaily\FilaTeams\Models\Membership::class,
'invitation' => LaravelDaily\FilaTeams\Models\TeamInvitation::class,
],
// How long invitations are valid
'invitation' => [
'expires_after_days' => 7,
],
// Create a personal team when a user registers
'create_personal_team_on_registration' => true,
];
```
---
## Translations
To publish the language files to your application:
```bash
php artisan vendor:publish --tag=filateams-translations
```
This copies the files to `lang/vendor/filateams/` where you can modify existing translations or add new languages by creating a folder named after the locale (e.g. `lang/vendor/filateams/de/filateams.php`).
---
## Database schema
The package creates three tables and adds one column:
**`teams`** — `id`, `name`, `slug` (unique), `is_personal`, `timestamps`, `soft_deletes`
**`team_members`** — `id`, `team_id`, `user_id`, `role`, `timestamps` (unique on `team_id + user_id`)
**`team_invitations`** — `id`, `code` (unique, 64 chars), `team_id`, `email`, `role`, `invited_by`, `expires_at`, `accepted_at`, `timestamps`
**`users`** — adds `current_team_id` (nullable foreign key to teams)
This schema matches the Laravel 13 starter kit exactly.
---
## License
MIT
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS

php-saas
php-saas is a Laravel-based SaaS starter positioned as an everything-included kit. It generates new projects via a global Composer command and includes authentication with two-factor, API tokens, Stripe and Paddle billing, and project, team, and organization management.
Laravel · SaaS

filament-jetstream
A Laravel starter kit that implements Jetstream-like authentication and account features using Filament's native panels and components. It includes login, registration, two-factor authentication, session management, user profiles, and optional teams and API tokens.
Laravel · Starter
