PHPackages                             abitbt/filament - 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. [Admin Panels](/categories/admin)
4. /
5. abitbt/filament

ActiveProject[Admin Panels](/categories/admin)

abitbt/filament
===============

Laravel 13 starter kit with Filament 5, featuring RBAC, activity logging, and demo components.

1101PHP

Since Apr 25Pushed 2mo agoCompare

[ Source](https://github.com/abitbt/filament)[ Packagist](https://packagist.org/packages/abitbt/filament)[ RSS](/packages/abitbt-filament/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel 13 Filament 5 Starter Kit
=================================

[](#laravel-13-filament-5-starter-kit)

A production-ready starter kit for building admin panels and internal tools with Laravel 13 and Filament 5. Includes a complete RBAC system, activity logging, and demo components to accelerate your development.

Why This Starter Kit?
---------------------

[](#why-this-starter-kit)

- **Skip the boilerplate** - Authentication, authorization, and user management ready out of the box
- **Learn Filament 5** - Demo cluster showcases forms, tables, widgets, actions, and infolists
- **Production patterns** - Policies, observers, services, and traits following Laravel best practices
- **Modern stack** - Latest versions of Laravel 13, Filament 5, Livewire 4, and Tailwind 4

Tech Stack
----------

[](#tech-stack)

ComponentVersionPHP8.4Laravel13.xFilament5.xLivewire4.xTailwind CSS4.xPest4.xPHPStanLevel 8Features
--------

[](#features)

### Authentication &amp; Authorization

[](#authentication--authorization)

- **Filament Authentication** - Login with session-based auth
- **Role-Based Access Control** - Granular permissions with hierarchical access levels
- **Super Admin Role** - Bypass all permission checks
- **Policy-Based Authorization** - Laravel policies for all resources

### User Management

[](#user-management)

- **User CRUD** - Create, edit, delete users with role assignments
- **User Status** - Active/inactive status controls panel access
- **Avatar Support** - User profile images
- **Blameable Records** - Track who created/updated records

### Activity Logging

[](#activity-logging)

- **Audit Trail** - Log all user actions automatically
- **IP &amp; User Agent** - Capture request metadata
- **Polymorphic Relations** - Link logs to any model
- **Login/Logout Tracking** - Authentication events logged

### Demo Showcase

[](#demo-showcase)

- **Form Inputs** - All Filament input components
- **Form Layouts** - Sections, tabs, grids, wizards
- **Tables** - Columns, filters, actions, bulk actions
- **Widgets** - Stats, charts (line, bar, pie)
- **Actions** - Modal forms, confirmations, notifications
- **Infolists** - Read-only data display

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

[](#requirements)

- PHP 8.4+
- Composer
- Node.js 20+ &amp; pnpm
- SQLite (default) or MySQL/PostgreSQL

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

[](#installation)

### Using Laravel Installer (Recommended)

[](#using-laravel-installer-recommended)

```
laravel new my-app --using=abitbt/filament
```

The installer will automatically set up everything for you.

### Manual Installation

[](#manual-installation)

```
# Create project
composer create-project abitbt/filament my-app
cd my-app

# Or clone the repository
git clone https://github.com/abitbt/filament.git my-app
cd my-app
composer install

# Setup
pnpm install
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
pnpm run build
```

> `storage:link` is required for user avatar uploads to render — they're stored under `storage/avatars/` and served via the public symlink.

### Start Development Server

[](#start-development-server)

```
composer run dev
```

Access the admin panel at: `http://localhost:8000/admin`

### Default Credentials

[](#default-credentials)

FieldValueEmail`admin@example.com`Password`password`> **Note:** Change these credentials immediately in production environments.

Development Commands
--------------------

[](#development-commands)

```
# Development server with hot reload
composer run dev

# Code formatting
./vendor/bin/pint

# Static analysis
./vendor/bin/phpstan analyse

# Run all tests
unset APP_ENV && php artisan test

# Run specific test
unset APP_ENV && php artisan test --filter=UserResourceTest
```

Project Structure
-----------------

[](#project-structure)

```
app/
├── Enums/
│   ├── Permission.php         # Permission definitions with groups
│   ├── UserStatus.php         # Active/Inactive status
│   └── ActivityEvent.php      # Log event types
├── Filament/
│   ├── Clusters/Demo/         # Demo pages & widgets
│   ├── Pages/Dashboard.php    # Main dashboard
│   ├── Resources/
│   │   ├── UserResource/      # User management
│   │   ├── RoleResource/      # Role management
│   │   └── ActivityLogResource/
│   └── Widgets/               # Dashboard widgets
├── Models/
│   ├── Concerns/
│   │   ├── Blamable.php       # created_by/updated_by trait
│   │   └── HasPermissions.php # Permission checking trait
│   ├── User.php
│   ├── Role.php
│   ├── Permission.php
│   └── ActivityLog.php
├── Observers/                 # Model event observers
├── Policies/                  # Authorization policies
└── Services/
    ├── ActivityLogger.php     # Logging service
    └── PermissionRegistrar.php

```

Permission System
-----------------

[](#permission-system)

Permissions use a hierarchical access model:

LevelPermissionGrants0NoneNo access1ReadView records2WriteRead + Create/Edit3DeleteRead + Write + Delete### Available Permissions

[](#available-permissions)

GroupPermissionsUsers`users.read`, `users.write`, `users.delete`Roles`roles.read`, `roles.write`, `roles.delete`Activity Logs`activity_logs.read`, `activity_logs.delete`> Activity logs are system-generated and immutable — no `write` permission is exposed.

### Adding New Permissions

[](#adding-new-permissions)

1. Add cases to `app/Enums/Permission.php`
2. Update `getGroup()` and `getGroupIcon()` methods
3. Create a policy in `app/Policies/`
4. Run `php artisan db:seed --class=PermissionSeeder`

Database Schema
---------------

[](#database-schema)

```
users
├── id, name, email, password
├── avatar, status (enum)
├── role_id (foreign key)
├── created_by, updated_by (blameable)
└── timestamps

roles
├── id, name, slug, description
├── is_default (boolean)
└── timestamps

permissions
├── id, name, group, description
└── timestamps

role_permission (pivot)
├── role_id
└── permission_id

activity_logs
├── id, user_id
├── subject_type, subject_id (polymorphic)
├── event, description, properties (json)
├── ip_address, user_agent
└── created_at

```

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

[](#customization)

### Panel Configuration

[](#panel-configuration)

Edit `app/Providers/Filament/AdminPanelProvider.php`:

```
return $panel
    ->brandName('Your App Name')
    ->colors(['primary' => Color::Blue])
    ->path('admin')  // Change URL path
    ->spa()          // SPA mode (remove for traditional)
    ->sidebarCollapsibleOnDesktop();
```

### Adding Resources

[](#adding-resources)

```
# Generate a new resource
php artisan make:filament-resource Post --generate

# Generate with soft deletes
php artisan make:filament-resource Post --generate --soft-deletes
```

### Adding Widgets

[](#adding-widgets)

```
# Stats widget
php artisan make:filament-widget PostStats --stats-overview

# Chart widget
php artisan make:filament-widget PostsChart --chart
```

Testing
-------

[](#testing)

Tests use Pest 4 and cover all resources:

```
# Run all tests
unset APP_ENV && php artisan test

# Run with coverage
unset APP_ENV && php artisan test --coverage

# Run specific test file
unset APP_ENV && php artisan test tests/Feature/UserResourceTest.php
```

Contributing
------------

[](#contributing)

1. Fork the repository
2. Create a feature branch
3. Run `./vendor/bin/pint` and `./vendor/bin/phpstan analyse`
4. Submit a pull request

License
-------

[](#license)

This project is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance57

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3f8962bbd8caeec51e9510bf6bd39d84707e609d67a4f07191e0809f58b1f4c2?d=identicon)[abit.bt](/maintainers/abit.bt)

---

Top Contributors

[![abixalmon](https://avatars.githubusercontent.com/u/1712938?v=4)](https://github.com/abixalmon "abixalmon (17 commits)")

### Embed Badge

![Health badge](/badges/abitbt-filament/health.svg)

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

PHPackages © 2026

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