mrcatz / datatable
Livewire DataTable base class for Laravel — CRUD, bulk actions, export, keyboard navigation, expandable rows, URL persistence, and more.
Fund package maintenance!
Requires
- php: ^8.1
- laravel/framework: ^11.0|^12.0|^13.0
- livewire/livewire: ^3.0|^4.0
Requires (Dev)
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- barryvdh/laravel-dompdf: Required for PDF export (^2.0|^3.0)
- laravel/scout: Required for Meilisearch search driver (^10.0)
- maatwebsite/excel: Required for Excel export (^3.1)
- meilisearch/meilisearch-php: Required when using SCOUT_DRIVER=meilisearch
- dev-main
- v1.29.19
- v1.29.18
- v1.29.17
- v1.29.16
- v1.29.15
- v1.29.14
- v1.29.12
- v1.29.11
- v1.29.10
- v1.29.9
- v1.29.8
- v1.29.7
- 1.29.6
- v1.29.5
- v1.29.4
- v1.29.3
- v1.29.2
- v1.29.1
- v1.29.0
- v1.28.9
- v1.28.8
- v1.28.4
- v1.28.3
- v1.28.2
- v1.28.1
- v1.28.0
- v1.27.16
- v1.27.15
- v1.27.14
- v1.27.13
- v1.27.12
- v1.27.11
- v1.27.10
- v1.27.9
- v1.27.8
- v1.27.7
- v1.27.6
- v1.27.5
- v1.27.4
- v1.27.3
- v1.27.2
- v1.27.1
- v1.27.0
- v1.26.0
- v1.25.14
- v1.25.13
- v1.25.12
- v1.25.11
- v1.25.10
- v1.25.9
- v1.25.8
- v1.25.7
- v1.25.6
- v1.25.5
- v1.25.4
- v1.25.3
- v1.25.2
- v1.25.1
- v1.25.0
- v1.24.23
- v1.24.22
- v1.24.21
- v1.24.20
- v1.24.19
- v1.24.18
- v1.24.17
- v1.24.16
- v1.24.15
- v1.24.14
- v1.24.13
- v1.24.12
- v1.24.11
- v1.24.10
- v1.24.9
- v1.24.8
- v1.24.7
- v1.24.6
- v1.24.5
- v1.24.4
- v1.24.3
- v1.24.2
- v1.24.1
- v1.23.43
- v1.23.42
- v1.23.41
- v1.23.40
- v1.23.39
- v1.23.38
- v1.23.37
- v1.23.36
- v1.23.35
- v1.23.34
- v1.23.33
- v1.23.32
- v1.23.31
- v1.23.30
- v1.23.29
- v1.23.28
- v1.23.27
- v1.23.26
- v1.23.25
- v1.23.24
- v1.23.23
- v1.23.22
- v1.23.21
- v1.23.20
- v1.23.19
- v1.23.18
- 1.23.17
- 1.23.16
- v1.23.15
- v1.23.14
- v1.23.13
- v1.23.12
- v1.23.11
- v1.23.10
- v1.23.9
- v1.23.8
- v1.23.7
- v1.23.6
- v1.23.5
- v1.23.4
- v1.23.3
- v1.23.2
- v1.23.1
- v1.23.0
- v1.22.1
- v1.22.0
- v1.21.4
- v1.21.3
- v1.21.2
- v1.21.1
- v1.21.0
- v1.20.5
- v1.20.4
- v1.20.3
- v1.20.2
- v1.20.1
- v1.20.0
- v1.19.6
- v1.19.5
- v1.19.4
- v1.19.3
- v1.19.2
- v1.19.1
- v1.19.0
- v1.18.5
- v1.18.4
- v1.18.3
- v1.18.2
- v1.18.1
- v1.18.0
- v1.17.2
- v1.17.1
- v1.17.0
- v1.16.9
- v1.16.8
- v1.16.7
- v1.16.6
- v1.16.5
- v1.16.4
- v1.16.3
- v1.16.2
- v1.16.1
- v1.16.0
- v1.15.3
- v1.15.2
- v1.15.1
- v1.15.0
- v1.14.8
- v1.14.7
- v1.14.6
- v1.14.5
- v1.14.4
- v1.14.3
- v1.14.2
- v1.14.1
- v1.14.0
- v1.13.1
- v1.13.0
- v1.12.6
- v1.12.5
- v1.12.4
- v1.12.3
- v1.12.2
- v1.12.1
- v1.12.0
- v1.11.0
- v1.10.2
- v1.10.1
- v1.10.0
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.6
- v1.8.5
- v1.8.4
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-04-19 00:31:38 UTC
README
MrCatz DataTable
DataTable + Form Builder for Laravel Livewire — build complete admin pages in minutes.
📖 Full documentation → 🎮 Live demo →
What is this?
A complete, opinionated DataTable + CRUD framework for Laravel + Livewire applications. Bundles everything you typically rebuild from scratch on every admin page — pagination, sorting, filtering, search, inline editing, bulk actions, expandable rows, exports, and a programmatic Form Builder — into a single composable API.
Think of it as "Filament's CRUD productivity, but you keep full control over your stack." You choose your Tailwind version, your DaisyUI theme, your Livewire flavor — MrCatz slots into your existing Laravel app instead of replacing it.
Highlights
- ⚡ CRUD in minutes —
php artisan mrcatz:make Product --path=Adminscaffolds everything - 🔍 Smart search — multi-keyword highlighting, per-column relevance scoring, typo tolerance, optional Meilisearch driver (beta)
- 🎯 Powerful filters — select, callback, dependent, and full date / date-range filters with operator support
- ✏️ Inline editing — click any cell to edit, with validation rules, keyboard navigation, per-row gating
- 📊 PDF, CSV & Excel export — built-in styling, fully customizable layouts
- 🧱 Form Builder — define add/edit forms in PHP with chainable modifiers, sections, conditional fields
- ☑️ Bulk actions & expandable rows
- 📱 Fully responsive — adapts cleanly from desktop tables to mobile card layouts out of the box
- 🎨 Themed via DaisyUI — works with any DaisyUI theme, full control over colors
Quick install
composer require mrcatz/datatable
Wire your base layout. In your app's base layout (usually layouts/app.blade.php), add these three directives before </body>. All three are required — without them the datatable, form modal, and toast notifications silently fail.
{{-- resources/views/layouts/app.blade.php --}} <body> {{-- ... your app content ... --}} @include('mrcatz::components.ui.notification') @livewireScripts @stack('scripts') </body>
Using Jetstream, Breeze, or Filament? Your layout likely already has
@livewireScriptsand@stack('scripts')— you only need to add the notification include.
Add the package's blade path to your Tailwind content scan:
/* resources/css/app.css (Tailwind v4) */ @source '../../vendor/mrcatz/**/*.blade.php';
Then generate your first CRUD page:
php artisan mrcatz:make Product --path=Admin
Add a route and you're done:
Route::get('/admin/products', \App\Livewire\Admin\Product\ProductPage::class);
For the full setup walkthrough — including optional Excel/PDF export, Meilisearch, Docker, and theming — see the Quick Start guide.
Documentation
The complete reference, with code samples and live demos for every feature, is hosted at datatable.catzoid.tech.
| Section | What's covered |
|---|---|
| Getting Started | Introduction, installation, quick-start |
| Core Features | Columns, filters, search, sorting, pagination |
| Editing & Actions | Inline editing, bulk actions, expandable rows |
| Form Builder | Programmatic forms with chainable modifiers |
| Export | PDF, CSV & Excel with custom layouts |
| Advanced Search | Per-column scoring, typo tolerance, Meilisearch (beta) |
| Customization | Icons, localization, theming |
| Deployment | Docker patterns for vendor blade scanning |
Requirements
- PHP 8.1+
- Laravel 11.x / 12.x / 13.x
- Livewire 3.x / 4.x
- Tailwind CSS v3 or v4
- DaisyUI v4 or v5
Optional dependencies
composer require maatwebsite/excel # CSV & Excel export composer require barryvdh/laravel-dompdf # PDF export composer require laravel/scout meilisearch/meilisearch-php # Meilisearch search driver (beta)
Built with Claude
A large portion of this package — and its documentation site — was built collaboratively with Anthropic's Claude. The maintainer focused on architecture decisions, requirements, and design trade-offs; Claude handled most of the implementation, tests, and docs writing. A reminder that AI-assisted development, when guided well, multiplies what one developer can ship.
Issues & contributions
Bug reports and feature requests welcome at github.com/mrc4tz/mrcatz-datatables/issues.