PHPackages                             jeffersongoncalves/teamkitv5 - 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. [Framework](/categories/framework)
4. /
5. jeffersongoncalves/teamkitv5

ActiveProject[Framework](/categories/framework)

jeffersongoncalves/teamkitv5
============================

TeamKit starter kit built on Laravel 13.x and Filament 5.x with a ready-to-use multi-panel structure.

5.4.2(1mo ago)770↓33.3%[1 issues](https://github.com/jeffersongoncalves/teamkitv5/issues)MITPHPPHP ^8.3CI passing

Since Nov 2Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/jeffersongoncalves/teamkitv5)[ Packagist](https://packagist.org/packages/jeffersongoncalves/teamkitv5)[ GitHub Sponsors](https://github.com/jeffersongoncalves)[ RSS](/packages/jeffersongoncalves-teamkitv5/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (37)Versions (33)Used By (0)

[![TeamKit](https://raw.githubusercontent.com/jeffersongoncalves/teamkitv5/main/art/jeffersongoncalves-teamkitv5.png)](https://raw.githubusercontent.com/jeffersongoncalves/teamkitv5/main/art/jeffersongoncalves-teamkitv5.png)

TeamKit Start Kit Filament 5.x and Laravel 13.x
===============================================

[](#teamkit-start-kit-filament-5x-and-laravel-13x)

About TeamKit
-------------

[](#about-teamkit)

TeamKit is a robust starter kit built on Laravel 13.x and Filament 5.x, designed to accelerate the development of modern web applications with a ready-to-use multi-panel structure.

Features
--------

[](#features)

- **Laravel 13.x** - The latest version of the most elegant PHP framework
- **Filament 5.x** - Powerful and flexible admin framework
- **Multi-Panel Structure** - Includes three pre-configured panels:
    - Admin Panel (`/admin`) - For system administrators
    - App Panel (`/app`) - For authenticated application users
    - Public Panel (frontend interface) - For visitors
- **Teams (Multitenancy)** - Team management with registration, profile, and team switching directly in the App panel
- **Environment Configuration** - Centralized configuration through the `config/teamkit.php` file

System Requirements
-------------------

[](#system-requirements)

- PHP 8.3 or higher
- Composer
- Node.js and PNPM

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

[](#installation)

Clone the repository

```
laravel new my-app --using=jeffersongoncalves/teamkitv5 --database=mysql
```

### Using FilaKit CLI

[](#using-filakit-cli)

Or use [FilaKit CLI](https://github.com/jeffersongoncalves/filakit-cli) for a simplified setup:

```
filakit new my-app --kit=jeffersongoncalves/teamkitv5
```

> Install FilaKit CLI: `composer global require jeffersongoncalves/filakit-cli`

### Easy Installation

[](#easy-installation)

TeamKit can be easily installed using the following command:

```
php install.php
```

This command automates the installation process by:

- Installing Composer dependencies
- Setting up the environment file
- Generating application key
- Setting up the database
- Running migrations
- Installing Node.js dependencies
- Building assets
- Configuring Herd (if used)

### Manual Installation

[](#manual-installation)

Install JavaScript dependencies

```
pnpm install
```

Install Composer dependencies

```
composer install
```

Set up environment

```
cp .env.example .env
php artisan key:generate
```

Configure your database in the .env file

Run migrations

```
php artisan migrate
```

Run the server

```
php artisan serve
```

Installation with Docker
------------------------

[](#installation-with-docker)

Clone the repository

```
laravel new my-app --using=jeffersongoncalves/teamkitv5 --database=mysql
```

Move into the project directory

```
cd my-app
```

Install Composer dependencies

```
composer install
```

Set up environment

```
cp .env.example .env
```

Configuring custom ports may be necessary if you have other services running on the same ports.

```
# Application Port (ex: 8080)
APP_PORT=8080

# MySQL Port (ex: 3306)
FORWARD_DB_PORT=3306

# Redis Port (ex: 6379)
FORWARD_REDIS_PORT=6379

# Mailpit Port (ex: 1025)
FORWARD_MAILPIT_PORT=1025
```

Start the Sail containers

```
./vendor/bin/sail up -d
```

You won’t need to run `php artisan serve`, as Laravel Sail automatically handles the development server within the container.

Attach to the application container

```
./vendor/bin/sail shell
```

Generate the application key

```
php artisan key:generate
```

Install JavaScript dependencies

```
pnpm install
```

Authentication Structure
------------------------

[](#authentication-structure)

TeamKit comes pre-configured with a custom authentication system that supports different types of users:

- `Admin` - For administrative panel access
- `User` - For application panel access

Teams – Multitenancy in the App Panel
-------------------------------------

[](#teams--multitenancy-in-the-app-panel)

Teamkit includes native support for Teams (multitenancy) in the application panel (`/app`). This allows you to isolate data by team and provide a multi‑company/multi‑project experience.

Key points:

- Team model: `App\Models\Team` with fields `user_id` (owner), `name`, and `personal_team`.
- Current user and current team: the user has `current_team_id` and helper methods for team management.
- Tenancy in Filament: the App panel is configured with tenant `Team::class`, tenant route prefix `team`, a team registration page, and a team profile page.

URLs and navigation:

- App panel: `/app`
- Team registration: `/app/team/register` (also accessible via the user menu under Tenancy)
- Team profile: accessible from the Tenancy menu when a team is selected (e.g., `/app/team/{id}/profile` – managed by Filament)
- Team switcher: appears at the top of the panel when the user belongs to 2+ teams.

Creating and managing teams:

- Register a team: at `/app/team/register`, enter the team name. The authenticated user becomes the team owner (`user_id`).
- Edit team profile: via the “Team profile” page, allowing you to change the team `name`.
- Switch teams: use the switcher at the top of Filament. Programmatically: `$user->switchTeam($team)`.

User ↔ team association:

- Team owner: the creator is the owner (field `user_id`).
- Members: the many‑to‑many relationship `User::teams()`/`Team::users()` uses the pivot represented by `App\Models\Membership`.
- Access rules: `User::canAccessTenant($tenant)` validates whether the user belongs to the team (owner or member). The `User::getTenants()` method returns the list for the switcher.

Team invitations (new):

- Invite members from the Team profile page: add emails in the Invitations list. The system prevents duplicates if the email already belongs to the team (owner or member) and enforces uniqueness per team.
- Pending invitations are listed for the invited user in the App panel user menu under “Invitations”. From there, the user can Accept (joins the team immediately) or Cancel (declines) each invite.
- On acceptance, the user is attached to the team membership and the invitation is removed. Declining deletes the invitation without adding the user.
- Admins can view/manage all invitations via the Admin panel resource “Team Invitations”.

Team‑scoped data:

- Middleware: `App\Http\Middleware\ApplyTenantScopes` is prepared for you to apply global scopes to your models, for example: ```
    // Example (uncomment and adapt):
    // SomeModel::addGlobalScope(
    //    fn (Builder $query) => $query->whereBelongsTo(Filament::getTenant()),
    // );
    ```
- Adapt your Resources/queries to always consider the current tenant when applicable.

Relevant migrations:

- `database/migrations/0001_01_01_000005_create_teams_table.php`
    - Creates the `teams` table with: `id`, `user_id` (indexed), `name`, and `personal_team` (boolean), plus timestamps.
- `database/migrations/0001_01_01_000007_create_team_invitations_table.php`
    - Creates the `team_invitations` table to store pending invitations per team and email.

Filament pages related to Teams:

- Registration: `App\Filament\App\Pages\Tenancy\RegisterTeam` (uses `Filament\Pages\Tenancy\RegisterTenant`).
- Profile: `App\Filament\App\Pages\Tenancy\EditTeamProfile` (uses `Filament\Pages\Tenancy\EditTenantProfile`).
- Invitations: `App\Filament\App\Pages\TeamInvitationAccept` — user menu → “Invitations” in the App panel.

App panel configuration (summary):

- `App\Providers\Filament\AppPanelProvider`
    - `->tenant(Team::class)`
    - `->tenantRoutePrefix('team')`
    - `->tenantRegistration(RegisterTeam::class)`
    - `->tenantProfile(EditTeamProfile::class)`
    - Adds a user menu item “Invitations” linking to `TeamInvitationAccept::getUrl()` when a team is active
    - `->tenantMiddleware([ApplyTenantScopes::class], isPersistent: true)`

Tips:

- When creating new Models/Resources that should be isolated by team, remember to relate them to `Team` and apply the scope in the middleware or in your queries.
- If you need to define a default team, `User::currentTeam` is resolved automatically if `current_team_id` is empty (it falls back to the personal team if it exists).

Development
-----------

[](#development)

```
# Run the development server with logs, queues and asset compilation
composer dev

# Or run each component separately
php artisan serve
php artisan queue:listen --tries=1
pnpm run dev
```

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

[](#customization)

### Panel Configuration

[](#panel-configuration)

Panels can be customized through their respective providers:

- `app/Providers/Filament/AdminPanelProvider.php`
- `app/Providers/Filament/AppPanelProvider.php`
- `app/Providers/Filament/PublicPanelProvider.php`

Alternatively, these settings are also consolidated in the `config/teamkit.php` file for easier management.

### Themes and Colors

[](#themes-and-colors)

Each panel can have its own color scheme, which can be easily modified in the corresponding Provider files or in the `teamkit.php` configuration file.

### Configuration File

[](#configuration-file)

The `config/teamkit.php` file centralizes the configuration of the starter kit, including:

- Panel routes
- Middleware for each panel
- Branding options (logo, colors)
- Authentication guards

Resources
---------

[](#resources)

TeamKit includes support for:

- User and admin management
- Multi-guard authentication system
- Tailwind CSS integration
- Database queue configuration
- Customizable panel routing and branding

License
-------

[](#license)

This project is licensed under the [MIT License](LICENSE).

Credits
-------

[](#credits)

Developed by [Jefferson Gonçalves](https://github.com/jeffersongoncalves).

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance88

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~6 days

Total

25

Last Release

43d ago

PHP version history (2 changes)5.0.0-beta2PHP ^8.2

5.4.0PHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/411493?v=4)[Jefferson Gonçalves](/maintainers/jeffersongoncalves)[@jeffersongoncalves](https://github.com/jeffersongoncalves)

---

Top Contributors

[![jeffersongoncalves](https://avatars.githubusercontent.com/u/411493?v=4)](https://github.com/jeffersongoncalves "jeffersongoncalves (152 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (103 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (69 commits)")

---

Tags

filamentfilament-starter-kitfilament-v5laravellaravel-13laravel-starter-kitlivewirelivewire-v4multi-panelmulti-tenancyphpstarter-kittailwindcssteamslaravellivewirefilamentstarter-kitlaravel-starter-kitfilament-starter-kittailwindcssfilament-v5

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/jeffersongoncalves-teamkitv5/health.svg)

```
[![Health](https://phpackages.com/badges/jeffersongoncalves-teamkitv5/health.svg)](https://phpackages.com/packages/jeffersongoncalves-teamkitv5)
```

###  Alternatives

[raugadh/fila-starter

Laravel Filament Starter.

614.9k](/packages/raugadh-fila-starter)[ercogx/laravel-filament-starter-kit

This is a Filament v3 Starter Kit for Laravel 12, designed to accelerate the development of Filament-powered applications.

401.5k](/packages/ercogx-laravel-filament-starter-kit)

PHPackages © 2026

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