⚡ Lara Dashboard
Open-source Laravel Admin Panel, CMS & Modular Starter Kit — powered by Laravel 13, Livewire 3, Tailwind CSS v4, built-in MCP for AI agents, and inline AI content tools.
🌐 Website • 🚀 Live Demo • 📖 Documentation • 🧩 Marketplace • 💬 Community
Lara Dashboard is a production-ready Laravel admin panel and headless CMS — a batteries-included Laravel boilerplate / starter kit with Users, Roles, Permissions (RBAC via Spatie), Modules, Settings, Translations, Posts & Pages, Media Library, REST API, MCP server for AI agents (Cursor, Claude Desktop, Claude Code), AI content generation, and a WordPress-style hooks system (via eventy) for extensibility.
Built for Laravel developers who want to ship admin dashboards, SaaS apps, CRMs and internal tools in hours, not weeks — without trading away Laravel idioms, testability or type-safety.
Try the live demo: https://laradashboard.com/try-demo/ Credentials:
[email protected]/12345678
✨ Why Lara Dashboard?
- 🔐 Complete RBAC — Users, Roles, Permissions via Spatie, admin impersonation, social auth (Socialite), and 2FA-ready flows.
- 🧩 Modular Architecture — Self-contained modules via nwidart/laravel-modules. Install, enable, disable, zip and distribute with a single command.
- ⚡ CRUD Generator —
php artisan module:make-crudscaffolds Model, Migration, Service, FormRequest, Controller, Datatable, Views, Routes, Menu and Tests in one pass. - 📝 Full CMS — Posts, Pages, Categories, Tags, Media Library, visual block-based editor with drag-and-drop.
- 🤖 Develop & manage with AI (MCP) — Connect Cursor, Claude Desktop, or Claude Code to your site. Create posts, review CRM leads, send emails, search docs, clear cache, and run daily briefings from natural language — with token-based, permission-scoped access from Settings → MCP.
- ✍️ Inline AI content — Configure OpenAI, Anthropic, Gemini and more via filter hooks. Generate and refine content inside the admin and builder.
- 📧 Email System — Inbound/outbound SMTP connections, visual email template builder, campaign tracking, notifications.
- 🌐 i18n Out-of-the-box — 21 languages preloaded, chunked translation management, one-click language adds.
- 🔌 REST API — Auto-documented with Scramble, Sanctum-auth, ready for mobile apps and SPAs.
- 🎨 Beautiful UI — Tailwind CSS v4, Alpine.js, dark/light mode, 60+ components, responsive on every breakpoint.
- 🪝 WordPress-style Hooks — Actions and filters everywhere so you can extend without forking.
- 🧪 Tests & Static Analysis — Pest, PHPStan (Larastan), Rector, Pint — all wired up out of the box.
- 📦 Zero-friction Deploy — cPanel/shared-hosting ready, ZIP distribution with vendor folder, one-click core upgrades with backup/restore.
🤖 Develop & Manage Your Site with AI (MCP)
Lara Dashboard ships a built-in Model Context Protocol (MCP) server so AI coding assistants can operate your site like a power user — not just write code about it.
Connect Cursor (Desktop or CLI), Claude Desktop, or Claude Code, generate an MCP agent token in Settings → MCP, and ask your assistant to manage day-to-day work: draft and publish posts, triage form submissions, update CRM records, send templated email, inspect logs, and more. Installed modules can expose their own tools through the McpFilterHook registry.
What you can do from Cursor, Claude, or similar clients
Quick start
- Open Settings → MCP, enable the MCP server, and save.
- Click Generate MCP token and copy the token (shown once).
- Add the server config to your AI client — the admin UI includes ready-made JSON for Cursor, Claude Desktop, and Claude Code.
Example config for Cursor (~/.cursor/mcp.json or project .cursor/mcp.json):
{
"mcpServers": {
"laradashboard": {
"url": "https://your-site.test/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_AGENT_TOKEN"
}
}
}
}
For local development, you can store the token in an env var (LARADASHBOARD_MCP_TOKEN) and reference it from the config snippet in Settings → MCP.
Note: The MCP endpoint returns 404 until MCP is enabled in settings. Regular API login tokens do not work — use a dedicated MCP agent token with the abilities you choose.
📚 Table of Contents
📋 Requirements:
- Spatie role permission package
^6.4 - Pest test package
^4.x - Tailwind CSS >= 4.x
- Laravel Modules - https://laravelmodules.com/docs/12/getting-started/introduction
- Laravel Events (A WordPress like action/filter hooks) - https://github.com/tormjens/eventy
- PHP 8.3 or 8.4
- Node.js >= 20.19 - https://nodejs.org/en/download/
🛠️ Built With
📝 Changelog
Latest release: v1.4.8 • Full changelog → • All GitHub releases
[v1.4.8] — 2026-10-03
- Fix (Security): Fixed some security improvements.
- Fix: Fixed some mobile responsive issues.
[v1.4.7] — 2026-10-02
- Fix (Security): Settings secrets stay hidden from
settings.view; registration IP limits, Superadmin role changes, post publish status, email-builder redirects, and MCP base64 uploads are locked down. - Fix (Security): Public translation JSON can only be read from
resources/lang(GHSA-43jp-66c9-7cgh). - Fix: Datatable horizontal scroll, small-screen toolbar, and sticky header stacking.
- Chore:
phpseclib3.0.57 andjs-yaml5.4.2.
[v1.4.5] — 2026-09-23
- New: Datatable column visibility on every list, and unified page scroll with sticky headers and pagination.
- New: View counts on Posts and Pages admin lists.
- New: MCP multipart hero uploads with
serve_okchecks; base64 uploads capped at ~100KB (#327). - New: Multi-turn AI chat completion across OpenAI, Claude, Gemini, and Ollama.
- Fix (Security): Core upgrades and Livewire module enable, disable, delete, and update actions are authorized (Superadmin /
ModulePolicy). - Fix: Text editor autoresize for embedded media; MCP media serve checks and signed uploads.
[v1.4.2] — 2026-09-14
- New: Public-form spam protection — honeypot, reCAPTCHA v3, disposable/typo/domain email validation, and reusable Blade components for Livewire forms.
- New: MCP
UploadMediaToolfor AI agents to upload files to the media library. - Improve: Datatable shift-click bulk selection and sticky headers.
- Improve: Module replace UX (auto-activate + Replaced & active badge), MCP settings UI, and auth email guard settings.
- Fix: MCP media URLs, bulk actions dropdown, Pulse storage on fresh installs.
[v1.4.0] — 2026-09-07
- New: MCP server for AI agents — token-based access from Settings → MCP with tools for content, CRM, forms, email, docs, cache, and logs.
- New: Module MCP registry (
McpFilterHook) so installed modules can expose tools and briefing providers.
[v1.3.2] — 2026-09-06
- New: Dashboard widget customization — per-user show/hide for stat cards and sections.
- Improve: Lara Builder drag preview, save reliability, and list block UX.
- Fix:
ModuleStylesasset scoping and module installation activation edge cases. - Fix (Security): Superadmin-only marketplace install and manual core upgrade upload; post builder upload authorization; markdown fetch SSRF hardening.
- Chore: Dependency updates (
livewire,league/commonmark,browserslist,fast-uri).
[v1.3.1] — 2026-08-31
- Fix: Password visibility toggle accessibility —
aria-label,aria-pressed, and hide tooltip (#296). - Fix: Mobile sidebar toggle icon and
aria-label/aria-expandedon small screens (#295). - Fix: Fresh install migration failure when
posts.design_jsonis missing; guarded canvas padding migration. - Improve: Core upgrade supports
UPGRADE_ZIP_PATH; release workflow demo upgrade uses built artifact ZIP. - Chore: Synced new accessibility strings across 31 locales.
[v1.3.0] — 2026-08-30
- Fix: Hardened media uploads — SVG sanitization, MIME validation, and
.htaccesshardening on public storage. - Fix: License API authorization and backup path traversal protection.
- Fix: Media library upload modal Alpine.js quoting; restored header upload button.
- New: GitHub Actions release pipeline — demo deploy, auto-release, marketplace publish,
/api/health. - New: Headless upgrade commands, Hostinger deploy scripts, and
module:publish-images. - Change: Demo refresh moved to hourly; module menu logos fixed after deploy.
- Chore: Dependency updates (
league/commonmark,guzzlehttp/guzzle, npm packages).
[v1.2.2] — 2026-07-17
- Fix: Core upgrade hardening — vendor staging/validation, CLI subprocess migrations, and vendor included in pre-upgrade backups (fixes shared-hosting upgrade failures).
- Fix:
protect-local-filesComposer script runs via PHP for Windows compatibility.
[v1.2.1] — 2026-07-15
- Fix: Text Editor block lifecycle and list markers in the canvas; list blocks keep content when changing type.
- New: Native Ctrl+Z / Cmd+Z undo in Lara Builder;
ModuleStylescomponent for safe module Vite CSS. - Fix:
module:make-crudcommand and stubs; bumpedspatie/laravel-medialibraryto 11.23.0.
[v1.2.0] — 2026-06-21
- New: Lara Builder SEO drawer with live score, checklist, SERP preview, and AI-generated meta fields.
- New: Auto-save for draft posts, text ↔ heading block conversion, and unified content typography tokens (inherit-by-default colors + section text color).
- Fix: Media library featured image duplicates, broken thumbnails/URLs, and publish/save “Unsaved” false-positive state.
- Improve: Media upload auto-select, post list thumbnails, builder header/actions, and AI content modal UX.
[v1.1.5] — 2026-05-18
- Fix: Migration is now idempotent — safe to re-run on databases that half-applied the v1.1.4 release.
[v1.1.4] — 2026-05-18
- New: Daily error digest email notifications for admins with error details.
- Improve: Improved module generator command to support custom stub templates and better error handling.
- Fix: Fixed switch toggle component styling.
[v1.1.3] — 2026-05-04
- Improve: Improved file upload component with close button and better error handling.
- Fix: Fixed minor upgrade issue for demo mode.
[v1.1.2] — 2026-04-19
- Fix: Module generator command improvement for Windows OS.
- Fix: CRUD generator command improvement for Windows OS.
- Improve: Added more extendibility support for email templates.
- Improve: Added more extendibility support for authentication pages.
[v1.1.1] — 2026-04-10
- Feat: Scheduled queue worker — runs every minute via
schedule:runto process queued jobs (workflow actions, emails) without requiring a long-running worker. - Improve: Sidebar submenu supports deeper (3rd and 4th level) nesting with proper indentation.
- Improve: Sidebar submenu expands without an inner scrollbar; the sidebar wrapper handles overflow when nav is long.
- Fix: Cleaned up user dropdown styling in the admin header.
👉 See the full changelog for all versions (v0.9.x – v2.x) →
🚀 Project Setup
Clone and Go Project
git clone [email protected]:laradashboard/laradashboard.git
cd laradashboard
Database & env creation
- Create database called -
laradashboard - Create
.envfile by copying.env.examplefile
cp .env.example .env
Install Composer & Node Dependencies
composer install
npm install
Generate Artisan key
php artisan key:generate
Link storage for file upload processing
php artisan storage:link
Migrate Database with seeder
php artisan migrate:fresh --seed
Run Project
composer run dev
So, You've got the project of Lara Dashboard on your local machine - http://localhost:8000
[Note]: For hot reloading to work, you must need node js version >= 20.19
🔨 Build Commands
📦 Distribution Package (Zip Build)
Create a production-ready zip package for distribution or manual upgrades. This package includes the vendor folder so users don't need Composer installed.
Using the Admin Panel:
- For production distribution, first run:
composer install --no-dev --optimize-autoloader - Go to Settings → Core Upgrades
- Click Create Backup
- Select backup type (Core + Modules recommended)
- Check Include vendor folder for production deployment
- Download the generated zip file
- Restore dev dependencies:
composer install
Manual Zip Creation:
# Build all assets first
npm run build:all
# Install production-only dependencies (removes dev packages like Pest, PHPUnit, etc.)
composer install --no-dev --optimize-autoloader
# Create distribution zip (excludes node_modules, .git, tests, uploads, etc.)
zip -r laradashboard-v$(cat version.json | grep -o '"version": "[^"]*' | cut -d'"' -f4).zip \
app bootstrap config database resources routes vendor Modules \
public/.htaccess public/index.php public/favicon.ico public/robots.txt \
public/asset public/backend public/build public/build-* public/css public/js public/images/logo \
storage/app/.gitignore storage/app/public/.gitignore \
storage/framework/.gitignore storage/framework/cache/.gitignore \
storage/framework/sessions/.gitignore storage/framework/views/.gitignore \
storage/logs/.gitignore \
artisan composer.json composer.lock package.json version.json index.php \
.env.example .htaccess vite.config.js tailwind.config.js postcss.config.js \
-x "*.git*" -x "node_modules/*" -x "tests/*" -x "storage/logs/*" -x "public/images/uploads/*" -x "public/uploads/*"
# Restore dev dependencies for local development
composer install
Note: Running
composer install --no-devbefore creating the zip ensures the vendor folder only contains production dependencies, significantly reducing the package size.
What's included in the distribution package:
app/- Application codebootstrap/- Bootstrap filesconfig/- Configuration filesdatabase/- Migrations, seeders, factoriespublic/- Public assets (build, css, js, images)resources/- Views, JS, CSS, lang filesroutes/- Route definitionsvendor/- Composer dependencies (optional, for production)index.php- Root entry point for shared hosting (cPanel).htaccess- Apache rewrite rules.env.example- Environment template- Core config files (composer.json, package.json, etc.)
Shared Hosting (cPanel) Deployment:
The package includes index.php and .htaccess in the root directory, so it works out-of-the-box on shared hosting without changing document root:
# Upload all files to public_html/
# No need to change document root - just upload and configure .env
If you prefer the standard Laravel setup (recommended for VPS/dedicated servers):
- Point your domain's document root to the
public/directory - Or create a symlink:
ln -s /path/to/laradashboard/public /home/user/public_html
Fresh Installation from Zip:
# Extract the zip
unzip laradashboard-vX.X.X.zip -d laradashboard
cd laradashboard
# Configure environment
cp .env.example .env
php artisan key:generate
# Update .env with your database credentials
# DB_DATABASE=your_database
# DB_USERNAME=your_user
# DB_PASSWORD=your_password
# Run migrations
php artisan migrate --seed
php artisan storage:link
# If vendor was not included, run:
composer install --no-dev --optimize-autoloader
🔄 Previously From laravel-role
We were previously at https://github.com/ManiruzzamanAkash/laravel-role, so you need to change the URL if you moved from there
git remote set-url origin [email protected]:laradashboard/laradashboard.git
⚙️ How it works
- Login using Super Admin Credential -
- Email -
[email protected] - Password -
12345678
- Email -
- Forget password - Password forget and reset will work if email is set up properly
- Create User
- Create Role
- Assign Permission to Roles
- Assign Multiple Role to an User
- Check by login with the new credentials.
- If you've not enough permission to do any task, you'll get a warning message.
- Dashboard with Beautiful chart integrated
- Module Based Development - Custom Module Add/Enable/Disable/Delete with detail view
- Monitoring - Logging of every action of your application
- Monitoring - Laravel Pulse
- Translation Management - Add/Edit/Delete Language, Add/Edit/Delete Translation
- Settings - General, Site Appearance, Content, Integration, Security settings
- Admin Menu - Add/Edit/Delete Menu, Submenu, Link
- Admin Impersonation - Login as another user and switch back to your original account
- Custom Error Pages - 404, 500, 503, 403
- Content Management System - Add/Edit/Delete Content, Content Category, Content Tag
- AI Content Generation - Configure AI providers (OpenAI, Anthropic, etc.) for content generation
- MCP Server - Connect Cursor, Claude Desktop, or Claude Code; manage content, CRM, forms, email, cache, and logs from AI agents (Settings → MCP)
- Email Management - Email connections, email templates with visual builder, notifications
- Detail Pages - User, Role, Permission, Module detail views with comprehensive information
- REST API — auto-documented REST endpoints for Users, Roles, Permissions, Settings, Translations, and Content (Post / Page / Category / Tag).
📧 Email setup
You can use Mailpit to test emails easily - https://mailpit.axllent.org/
Installation link - https://mailpit.axllent.org/docs/install/
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
[email protected]
MAIL_FROM_NAME="${APP_NAME}"
Browse Emails - http://localhost:8025
[!NOTE] You can also create custom Email connection from Email Connections page.
📚 Documentation
https://laradashboard.com/docs/
🔗 Rest API Documentation
We've used Scramble to automatically generate the Rest API documentation for Lara Dashboard. You can find the API documentation at:
http://localhost:8000/docs/api
Tests
We've used Laravel Pint, Rector, Larastan(PHPstan) - static analysis and Pest for unit tests, e2e (browser) tests.
composer run test
composer run test
Format: To format the code, we've used pint. You can run the following command to format the code:
composer run format
Type Safety: To improve type safety, we've used rector. You can run the following command to add type hints:
composer run type-check
You can also run individual commands for each tool (optional):
composer run pint
composer run phpstan
composer run pest
🛠️ Troubleshooting
If you get this error during composer install:
pestphp/pest-plugin-browser requires ext-sockets * -> it is missing from your system
Fix: Enable the sockets extension in php.ini:
extension=sockets
Or via Laragon UI: Right-click tray → PHP → Extensions → check sockets
Quick workaround:
composer install --ignore-platform-req=ext-sockets
🚀 Laravel Boost
Laravel Boost is already installed in this project to provide enhanced development and debugging tools for Lara Dashboard.
How to use Boost:
Visit the Laravel Boost documentation.
📸 Screenshots
🔐 Login & Authentication
📊 Dashboard
🔑 Role Management
</td>
👥 User Management
</td>
📝 Content Management - CMS
📁 Media Management
🤖 AI Content Generation
Use inline AI inside the admin for drafting and editing. For full site management from Cursor, Claude Desktop, or Claude Code, enable the MCP server under Settings → MCP — see Develop & Manage with AI (MCP) above.
📧 Email Management
🧩 Module Management
</td>
⚙️ Settings Pages
🌐 Translations Pages
📊 Monitoring
🧩 Rest API Management
🔧 Other Pages / Sections / Tests
🔗 Live Demo
https://laradashboard.com/try-demo/
✨ Premium Features
Visit laradashboard.com for premium modules — CRM, HRM, Course Management, Project Management and more. Each premium module ships with the same CRUD generator, hooks, and test scaffolding as the core.
🧩 Core modules
- Task Manager - https://github.com/laradashboard/TaskManager - Basic Task Manager module for Lara Dashboard | Standard Starter Module for Lara Dashboard.
- User Avatar - https://github.com/laradashboard/UserAvatar - A very simple module create an avatar for a user. Handle migration, entries/updates in user forms and so on.
📦 Module Development
Lara Dashboard uses nwidart/laravel-modules for modular architecture. Modules are self-contained packages with pre-compiled assets - no npm required on the server.
Quick Start
# Create a new module
php artisan module:make Blog
# Build and package for distribution
php artisan module:zip Blog
# Output: Blog-v1.0.0.zip
Learn module development documentation
CRUD Generator
Rapidly scaffold complete CRUD operations with a single command.
php artisan module:make-crud Blog --model=Article --fields="title:string,author:string,content:text,is_published:boolean"
What gets generated:
- ✅ Model with fillable fields and casts
- ✅ Datatable with sorting, searching, pagination
- ✅ Index, Show, Create, Edit Livewire components
- ✅ Blade views with breadcrumb navigation
- ✅ Routes (index, create, show, edit)
- ✅ Sidebar menu item
Learn more CRUD generator documentation
Installing Modules
Via Web UI: Upload ZIP at Modules → Install Module (assets publish automatically)
Via CLI:
unzip Blog-v1.0.0.zip -d modules/
php artisan module:enable Blog
📖 Full Module Development Guide - Covers module structure, Tailwind CSS setup, building, packaging, and best practices.
👥 Contributing
Want to contribute? Fork the project, make your changes, and submit a pull request. Even small improvements to documentation are appreciated!
Please be sure to read our Contribution Guide before submitting your PR.
➶ Coding Standards
✨ Following a consistent coding standard ensures code quality, readability, and easier collaboration for everyone. 📏 Please be sure to read our Contribution Guide before submitting your PR.
🌟 Top contributors:
✩ Growth Story
💖 Support
If you like my work you may consider buying me a ☕ / 🍕
📞 Connect
- Join Facebook Community (For any questions, latest updates) - https://www.facebook.com/groups/laradashboard
- Linkedin Community - https://www.linkedin.com/groups/14690156
- Youtube channel (For tutorials) - https://www.youtube.com/@laradashboard
- Maniruzzaman Akash - @LinkedIn | [email protected]