Three-tier role system: super admin, admin, user. The super admin bypasses permission checks via Gate::before and is hidden from the user list.
laravel-admin-starter-kit — Laravel Admin dashboard Template
By RiteshMistri
A Laravel and TailAdmin-based admin starter template with built-in authentication, three-tier roles, and modular permission management.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Permissions use dot notation in the format module.action, such as user-management.read/add/edit/delete, managed by Spatie Laravel Permission.
The permission matrix table supports column header select-all. Checking add/edit/delete automatically adds the read permission for the same module.
User management provides full CRUD and supports role assignment and per-user permission overrides.
The interface is based on TailAdmin, using TailwindCSS and Alpine.js, with dashboard charts, a calendar, and multiple UI component pages.
Adding a new module only requires appending permission entries to RolesAndPermissionsSeeder and re-running the seeder.
Template Details
This is a Laravel admin starter template. The frontend uses TailAdmin, authentication uses Laravel Breeze, and permission management relies on Spatie Laravel Permission. Both the repository description and README point to the same goal: providing a reusable skeleton for admin projects, eliminating the repetitive setup of authentication, roles, and permission interfaces.
The permission system uses three roles: super admin, admin, and user. The super admin bypasses all permission checks via Gate::before in AppServiceProvider and is hidden from the user list. The admin role receives all module permissions by default. The user role receives read permission for each module by default. Permissions use dot notation in the format module.action, such as user-management.read, user-management.add, user-management.edit, and user-management.delete.
The admin panel provides a permission matrix table for assigning permissions: column header checkboxes can select all operations of a type at once. Checking add/edit/delete automatically adds the read permission for the same module. Unchecking a single row does not affect the column header state. To add a new module, simply append entries with the same naming convention to the permission array in RolesAndPermissionsSeeder and re-run that seeder; the matrix interface will automatically group and display them.
The template also includes user management CRUD, a pre-built dashboard with ApexCharts, a FullCalendar calendar, and UI component pages such as Alerts, Badges, Buttons, Avatars, Images, and Videos. The database supports MySQL or SQLite, configured via .env; assets are bundled with Vite. Installation steps are: composer install, npm install, copy .env and generate key, configure the database, run php artisan migrate --seed, build frontend assets, and start the service. The seeder creates roles, permissions, and two default accounts: [email protected] and [email protected].
Usage limitations: the repository has 0 stars and no production environment verification information is provided. The README's statement about being "production-ready" is the author's own claim and should not be treated as a verified conclusion. Third-party assets such as demo images, fonts, and icons require separate license verification. External services such as domains, hosting, and databases may incur additional charges.
Is it right for your project?
Use Cases
- Quickly setting up a Laravel admin project with login, registration, password reset, and email verification.
- Controlling admin operation permissions at the role and module granularity, with a visual permission assignment interface.
- Managing user accounts in the admin panel, assigning roles, and overriding individual user permissions.
- Using ready-made dashboard charts, a calendar, or basic UI component pages as a starting point for the admin interface.
Suitable For
- Developers using Laravel who want to skip building authentication and permission scaffolding.
- Admin projects that need a modular permission matrix rather than simple role checks.
- Teams willing to use TailAdmin as the admin interface foundation and build on top of it.
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Environment requirements: PHP 8.2+, Composer, Node.js 18+ and npm. The database can be MySQL or SQLite.
- 2
Run composer install, npm install, copy .env.example to .env, and run php artisan key:generate.
- 3
Configure the database connection in .env, then run php artisan migrate --seed. This creates roles, permissions, and default accounts.
- 4
During development, run npm run dev. For production builds, use npm run build, then start with php artisan serve.
- 5
The default login accounts are [email protected] and [email protected], both with the password password. These must be changed before going live.
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version under the MIT license in the public repository; 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
- The code of this version may be used, modified, used commercially, and distributed for free.
- 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 super admin account does not appear in the user list and cannot be viewed or edited through the user management interface.
- The super admin role bypasses all permission checks and cannot be restricted through the permission matrix.
- When checking add, edit, or delete permissions for a module in the permission matrix, the system automatically checks the read permission for that module as well.
- Unchecking a single row's permission does not update the column header checkbox state; the header may still appear checked.
- The seeder creates default accounts [email protected] and [email protected], both with the password password. These must be changed before going live.
- You must prepare and configure MySQL or another supported database yourself; database services may incur additional costs.
- Demo images, fonts, icons, and other third-party assets must be verified under their respective licenses; the code's MIT license alone does not cover them.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
The Super Admin account is hidden from the Users list for security reasons.
Original README
Super Admin automatically bypasses all permission checks via `Gate::before`
Original README
Selecting `Add`, `Edit`, or `Delete` automatically checks `Read` for that module
Original README
Unchecking an individual row does not affect the column header state
Original README
Create default Super Admin (`[email protected]`) and Admin (`[email protected]`) accounts
Original README
https://github.com/RiteshMistri/laravel-admin-starter-kit/blob/master/LICENSEhttps://github.com/RiteshMistri/laravel-admin-starter-kit/blob/master/README.mdMySQL or another supported database
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · 85 / 100
- Technologies
- Laravel
- Website type
- Admin dashboard · 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-09-28
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
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: e760fd296259c591f1f998eb8746c0a45ca4170e8311fe84cb09d612a89d56d4
2026-10-01T02:26:09.860Z
Source file / repository<h1 align="center">
<br>
<a href="https://github.com/RiteshMistri/laravel-admin-starter-kit">
<img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="300" alt="Laravel Admin Starter Kit">
</a>
<br>
Laravel Admin Starter Kit
<br>
</h1>
<h4 align="center">A full-featured, production-ready Laravel Admin Panel Starter Kit with Role-Based Access Control, Module-Based Permissions, and a modern TailAdmin UI — built to save you days of boilerplate work.</h4>
<p align="center">
<a href="https://github.com/RiteshMistri/laravel-admin-starter-kit/blob/main/LICENSE">
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
</a>
<img src="https://img.shields.io/badge/Laravel-12.x-red?logo=laravel" alt="Laravel 12">
<img src="https://img.shields.io/badge/PHP-8.2+-blue?logo=php" alt="PHP 8.2+">
<img src="https://img.shields.io/badge/TailwindCSS-4.x-cyan?logo=tailwindcss" alt="TailwindCSS">
<img src="https://img.shields.io/badge/Alpine.js-3.x-lightblue?logo=alpine.js" alt="Alpine.js">
<img src="https://img.shields.io/badge/Spatie%20Permissions-7.x-green" alt="Spatie Permissions">
</p>
<p align="center">
<a href="#-key-features">Key Features</a> •
<a href="#-demo-credentials">Demo</a> •
<a href="#-tech-stack">Tech Stack</a> •
<a href="#-installation">Installation</a> •
<a href="#-role--permission-system">Permissions</a> •
<a href="#-folder-structure">Structure</a> •
<a href="#-contributing">Contributing</a>
</p>
---
## 🚀 Key Features
- **🔐 3-Tier Role System** — Super Admin, Admin, and User roles, each with different access levels
- **🛡️ Module-Based Permissions** — Fine-grained, dotted permissions (e.g., `user-management.read`, `user-management.add`) using Spatie's Laravel Permission package
- **✅ Permissions Matrix UI** — Intuitive table-based permission assignment with master "Select All" column headers per action
- **👑 Super Admin Bypass** — Super Admin automatically bypasses all permission checks via `Gate::before` — no need to manually assign permissions
- **👤 User Management** — Full CRUD for users with role assignment and per-user permission overrides
- **🎨 TailAdmin UI** — Beautiful, responsive admin UI built with TailwindCSS v4 and Alpine.js
- **🔑 Laravel Breeze Auth** — Authentication scaffolding (Login, Register, Password Reset, Email Verification)
- **📊 Dashboard & Charts** — Pre-built dashboard with ApexCharts integration
- **📅 Calendar** — FullCalendar.js integration for event management
- **🧩 UI Components** — Pre-built Alerts, Badges, Buttons, Avatars, Images, Videos pages
- **⚡ Vite Asset Bundling** — Fast dev server and optimized production builds
---
## 🖥️ Demo Credentials
After seeding, you can log in with these default accounts:
| Role | Email | Password |
|-------------|---------------------|------------|
| Super Admin | `[email protected]` | `password` |
| Admin | `[email protected]` | `password` |
> **Note:** The Super Admin account is hidden from the Users list for security reasons.
---
## 🛠️ Tech Stack
| Layer | Technology |
|--------------|-------------------------------------|
| Framework | Laravel 12.x |
| Language | PHP 8.2+ |
| Auth | Laravel Breeze |
| Permissions | Spatie Laravel Permission 7.x |
| Frontend CSS | TailwindCSS 4.x + @tailwindcss/forms|
| Frontend JS | Alpine.js 3.x |
| Asset Build | Vite + laravel-vite-plugin |
| Charts | ApexCharts |
| Calendar | FullCalendar.js |
| Date Picker | Flatpickr |
| HTTP Client | Axios |
| Database | MySQL / SQLite (configurable) |
---
## 📦 Installation
### Prerequisites
- PHP >= 8.2
- Composer
- Node.js >= 18.x & npm
- MySQL or another supported database
### Steps
**1. Clone the repository**
```bash
git clone https://github.com/RiteshMistri/laravel-admin-starter-kit.git
cd laravel-admin-starter-kit
```
**2. Install PHP dependencies**
```bash
composer install
```
**3. Install Node.js dependencies**
```bash
npm install
```
**4. Set up the environment file**
```bash
cp .env.example .env
php artisan key:generate
```
**5. Configure your database**
Open `.env` and update your database credentials:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_admin_starter
DB_USERNAME=root
DB_PASSWORD=
```
**6. Run database migrations and seed default data**
```bash
php artisan migrate --seed
```
This will automatically:
- Create all tables
- Create the `super admin`, `admin`, and `user` roles
- Create module-based permissions (`user-management.read`, etc.)
- Create default Super Admin (`[email protected]`) and Admin (`[email protected]`) accounts
**7. Build assets**
```bash
# For development (with hot reload)
npm run dev
# For production
npm run build
```
**8. Start the development server**
```bash
php artisan serve
```
Visit [http://localhost:8000](http://localhost:8000) and log in with the demo credentials above.
---
## 🔑 Role & Permission System
This starter kit implements a **3-tier access control system**:
### Roles
| Role | Description |
|-------------|-------------|
| `super admin` | Full unrestricted access to everything. Bypasses all permission checks via `Gate::before`. Hidden from user lists. |
| `admin` | Can access admin panel features based on assigned permissions. Gets all module permissions by default. |
| `user` | Basic access. Gets `read` permission on each module by default. |
### Module-Based Permissions
Permissions follow a dotted `module.action` syntax:
```
user-management.read
user-management.add
user-management.edit
user-management.delete
```
> Add new modules by simply adding entries to `RolesAndPermissionsSeeder.php` following the same pattern. The UI will automatically group them in the Permissions Matrix.
### Permissions Matrix UI
The admin panel provides a **Permissions Matrix Table** for visual, user-friendly permission assignment:
- ✅ **Column Header Checkbox** — Check "Read" in the header to select all `Read` checkboxes across all modules at once
- ✅ **Smart Auto-Select** — Selecting `Add`, `Edit`, or `Delete` automatically checks `Read` for that module (you can't add without seeing)
- ✅ **One-Way Binding** — Unchecking an individual row does not affect the column header state
### Super Admin Gate Bypass
In `app/Providers/AppServiceProvider.php`:
```php
Gate::before(function ($user, $ability) {
if ($user->hasRole('super admin')) {
return true;
}
});
```
---
## 📂 Folder Structure
Key files and directories to know about:
```
├── app/
│ ├── Http/
│ │ └── Controllers/
│ │ └── Admin/
│ │ └── UserController.php # Admin User CRUD
│ └── Providers/
│ └── AppServiceProvider.php # Gate::before (Super Admin bypass)
│
├── database/
│ ├── migrations/
│ └── seeders/
│ ├── DatabaseSeeder.php
│ └── RolesAndPermissionsSeeder.php # Roles, Permissions, Default Users
│
├── resources/
│ └── views/
│ ├── admin/
│ │ └── users/
│ │ ├── index.blade.php # User list (paginated)
│ │ ├── create.blade.php # Create user + permissions matrix
│ │ └── edit.blade.php # Edit user + permissions matrix
│ ├── layouts/
│ │ └── app.blade.php # Main layout wrapper
│ └── pages/
│ └── dashboard/ # Dashboard views
│
├── routes/
│ ├── web.php # App + Admin routes
│ └── auth.php # Breeze auth routes
│
├── tailwind.config.js
├── vite.config.js
└── .env.example
```
---
## 🧪 Running Tests
```bash
php artisan test
```
---
## ⚙️ Adding New Modules / Permissions
1. Open `database/seeders/RolesAndPermissionsSeeder.php`
2. Add your new permissions to the `$permissions` array:
```php
$permissions = [
// Existing
'user-management.read',
'user-management.add',
'user-management.edit',
'user-management.delete',
// New module example
'product-management.read',
'product-management.add',
'product-management.edit',
'product-management.delete',
];
```
3. Re-run the seeder:
```bash
php artisan db:seed --class=RolesAndPermissionsSeeder
```
The Permissions Matrix UI will automatically display the new module grouped correctly.
---
## 🤝 Contributing
Contributions, issues and feature requests are welcome! Here's how to get started:
1. **Fork** the repository
2. Create your feature branch: `git checkout -b feature/my-new-feature`
3. Commit your changes: `git commit -m 'Add some feature'`
4. Push to the branch: `git push origin feature/my-new-feature`
5. Open a **Pull Request**
Please make sure to update tests as appropriate.
---
## 📄 License
This project is open-sourced software licensed under the [MIT License](LICENSE).
---
## 🙏 Credits
- [Laravel](https://laravel.com) — The PHP Framework for Web Artisans
- [TailAdmin](https://tailadmin.com) — Tailwind CSS Admin Dashboard Template
- [Spatie Laravel Permission](https://spatie.be/docs/laravel-permission) — Role & Permission management
- [Alpine.js](https://alpinejs.dev) — Lightweight reactive JavaScript framework
- [TailwindCSS](https://tailwindcss.com) — Utility-first CSS framework
---
---
## 👨💻 About the Author
**Ritesh Mistri** — Laravel Developer passionate about building clean, scalable, and developer-friendly web applications.
- 🌐 Website: [riteshmistri.site](https://riteshmistri.site/)
- 🔗 LinkedIn: [linkedin.com/in/ritesh-mistri777](https://www.linkedin.com/in/ritesh-mistri777/)
- 💻 GitHub: [github.com/RiteshMistri](https://github.com/RiteshMistri)
---
<p align="center">Built to help developers save time — by <a href="https://riteshmistri.site/">Ritesh Mistri</a></p>
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

coreui-free-laravel-admin-template
A free MIT-licensed Laravel admin template using CoreUI Bootstrap styles, with a sample login account and management examples for users, menus, roles, media, BREAD, and email templates.
Laravel · Admin dashboard

sneat-bootstrap-html-laravel-admin-template-free
Sneat Free is a Laravel admin template with a Bootstrap 5 frontend, MIT-licensed, offering a dashboard, multiple layouts, authentication pages, forms, and tables.
Laravel · Admin dashboard

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
