Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Livewire Tables Laravel Package

alp-develop/laravel-livewire-tables

Full-featured reactive data tables for Laravel: search, sort, filter, paginate, export, and bulk actions with zero JavaScript. Supports Livewire 3–4, Tailwind, Bootstrap 5/4, and dark mode.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for admin/back-office data grids. The package covers the full "commodity" surface of a table UI — search (debounced), sort, filters (including dependent select filters), pagination with configurable per-page, row selection and bulk actions, CSV export, dark mode, and Tailwind/Bootstrap 5/Bootstrap 4 theming — with zero custom JavaScript. This is the classic candidate for buy: it is well-understood, low-differentiation surface area that nonetheless costs 3–6 engineer-weeks to build and test properly, and it recurs in every internal tool.
  • Roadmap acceleration for internal tooling. Because it runs on Livewire 3–4 and Laravel 10–13 (PHP 8.1–8.5), it can be dropped into existing Livewire admin panels without a frontend stack change. That turns "we need a filterable, exportable list view" from a sprint item into a same-day task, freeing capacity for differentiating work.
  • Feature-scoping decisions on table UX. The package's documented extension points (toolbar slots, lifecycle events/hooks, joins for reporting columns, setEagerLoad(), table-key for per-instance state isolation, custom BladeColumn render closures) define the boundary between "free" and "custom." A PM can use that boundary to decide which table features are table-stakes (adopt) versus product-differentiating (build on top).
  • Compliance and reporting deliverables. Built-in CSV export plus the 1.2.2 hardening (CSV formula-injection escaping on headers and values, tab/CR injection tests) is a meaningful input to a security review when "export user data to spreadsheet" is a contractual or audit requirement. It pre-answers a question that usually surfaces late.
  • Security posture as a release gate, not a redesign. The 1.2.2 changelog documents fixes for IDOR in bulk actions, #[Locked] state protection, sort-field whitelisting, per-page bypass, XSS in ActionColumn icons, date-filter DoS, allowlist enforcement on select filters, SRI-pinned CDN assets, and CSS-injection via config colors. For a PM, this reads as a maturity signal and a version floor: adopt at ≥1.2.2 and treat earlier versions as unsuitable for multi-tenant or PII-bearing data.
  • Performance decisions on large datasets. Pipeline caching, O(1) filter/sort lookups, 3-tier column caching, session dirty-tracking, and explicit eager loading are the levers a PM can point at when deciding whether a 100k-row admin listing is viable on this package versus needing a dedicated reporting path.
  • Multiple-view and dashboard decisions. The table-key requirement (state is session-shared without it) and per-table theme override are small but real product decisions when the same table appears twice on one page — e.g., "Active users" and "Archived users" side by side.

When to Consider This Package

Adopt when most of the following hold:

  • The stack is already Laravel 10–13 + Livewire 3–4, and the UI is Tailwind or Bootstrap 5/4. Retrofitting is cheap; greenfield is cheap too.
  • The need is internal/back-office CRUD and reporting views — user lists, order lists, audit views, moderation queues — where a table is a means, not the product.
  • You want export, bulk actions, and dark mode out of the box and cannot justify bespoke engineering for them.
  • Your team has no dedicated frontend specialist and values a "zero JavaScript" contract.
  • You can pin a version (≥1.2.2), wrap it in a thin internal base component, and accept the option of forking under MIT if maintenance stalls.
  • You value the quality signals: extensive docs (columns, filters, bulk actions, export, events, theming, dark mode, joins, security), a changelog with security and performance detail, CI tests, PHPStan level 8, and a recent release.

Look elsewhere — or plan to build — when any of these are true:

  • You already run Filament or a comparable admin framework. Its table builder is more deeply integrated with forms, actions, and the rest of the panel; introducing a second table abstraction is pure duplication.
  • You need advanced grid capabilities: column reordering, persisted user-defined views/saved filters, inline editing, row grouping/aggregation, virtualized scrolling for large result sets, spreadsheet-style editing, or complex pivot/reporting grids.
  • A single-maintainer, low-adoption dependency is unacceptable. Seven stars, zero dependents, and no third-party production references mean no community validation — a genuine risk for a customer-facing or revenue-path surface. Note the mismatch: feature depth and documentation maturity exceed ecosystem adoption.
  • You need vendor support, an SLA, or an accessibility certification. Neither is offered; accessibility conformance would be your responsibility.
  • The data volume or query shape is non-trivial (multi-tenant scoping, heavy joins, cross-database reporting). The pipeline is solid, but you should spike against production-like data before committing.
  • Your team cannot absorb fork/maintenance risk. If nobody on the team can read the pipeline internals (Engine, SearchStep, FilterStep, SortStep, State) and take ownership, the lock-in is quiet but real.

How to Pitch It (Stakeholders)

For executives — one paragraph. This is an MIT-licensed Laravel component that gives us fully interactive data tables — search, sorting, filtering, pagination, bulk actions, CSV export, dark mode, and our choice of Tailwind or Bootstrap theme — with no custom frontend code. It replaces a recurring 3–6 engineer-week build with a Composer install, accelerating delivery of internal tools and reporting screens. Its changelog shows disciplined security and performance engineering (bulk-action IDOR, CSV injection, XSS, per-page bypass, request-level caching, eager loading), which reduces the risk that we ship an admin panel with well-known grid vulnerabilities. The trade-off is ecosystem maturity: adoption is currently minimal, so we adopt a pinned version, wrap it in our own base component, and retain the right to fork — a contained, reversible bet rather than a platform commitment.

For engineering. Install and configure via vendor:publish; set the theme in config/livewire-tables.php. Scaffold with artisan make:livewiretable. Compose tables declaratively — query(), columns(), filters(), bulkActions(), configure() — over a DataTableComponent base, with column types (Text, Boolean, Date, Image, Action, Blade, computed) and an immutable State + Engine pipeline underneath. Extension points are real, not aspirational: Engine is subclassable and getEngine() is protected, setEagerLoad() handles N+1s, toolbar slots and lifecycle events cover custom UI and cross-component refresh, and table-key isolates state per instance. Pin ≥1.2.2 and treat BladeColumn raw HTML output as our explicit responsibility. Set expectations: zero dependents means we are early adopters — budget a spike, a code read of the pipeline, and a thin internal wrapper so upgrades and a potential fork stay cheap.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode