wedevelopnl/ux-table
A Laravel package for quickly building interactive data tables with minimal code. It supports sortable columns, search, filters, pagination, and row actions, plus a customizable, developer-friendly API so you can tailor each table's layout and styling to fit your application's UI.
Architecture fit — critical mismatch. The package is wedevelopnl/ux-table, a Symfony UX bundle: it renders tables through Twig templates and the Symfony UX (Turbo / Live Component / Stimulus) stack, and it is wired into an application via a Symfony bundle class and compiler passes. The brief frames this as a Laravel/PHP package, and that framing does not survive contact with the code. A Laravel application has no bundle kernel, no Twig view layer by default, and no Symfony UX asset pipeline. There is no service provider, no publishable Blade views, no Laravel config file, and no Illuminate integration of any kind. Out-of-the-box architectural fit for a Laravel stack is effectively zero; fit for a Symfony stack is good.
Integration feasibility. Composer will only resolve this if the host already satisfies its Symfony constraints, and installing it pulls symfony/framework-bundle, twig/*, and one or more symfony/ux-* packages transitively. In a Laravel app those sit alongside — not inside — the Illuminate stack: two view engines, two asset conventions, two notions of a request lifecycle. Any "integration" is really a port, and the porting surface is the entire presentation layer (templates, Stimulus controllers, asset mapping), not a config flag. That is a rewrite, not an integration.
Technical risk. Signals are weak: 16 stars, a single-vendor origin (WeDevelop, a Dutch agency), one release in April 2024 and no visible cadence since. Bus factor is approximately one team. There is no LTS statement, no published support policy, and its dependency on Symfony UX means it inherits that project's 6.x → 7.x breaking-change churn. For a Laravel target the risk is not "will it break" but "it never worked."
Key questions to answer before any commitment.
power-components/livewire-powergrid, or rappasoft/laravel-livewire-tables — all of which give search/filter/sort natively?Recommendation: Reject for a Laravel stack. Evaluate only as a reference implementation for table UX patterns. If the estate is genuinely Symfony, it is a reasonable low-ceremony choice — but still a bet on a small, low-velocity package.
Stack fit. For Symfony 6/7 + Twig + AssetMapper (or Encore), fit is clean: composer require, enable the bundle, render the component in Twig, style with the project's CSS framework. For Laravel: no fit. The nearest equivalents occupy exactly the niche this package occupies in Symfony — Livewire components, Eloquent-backed query builders (spatie/laravel-query-builder for filter/sort), and a table UI layer on top.
Migration path. There is no mechanical migration in either direction.
WithFilters/WithSorting trait, and the rebuild is days, not weeks.Compatibility. Verify before anything else: PHP constraint (likely 8.1+), Symfony ^6.x vs ^7.x range, the Symfony UX Live Component / Turbo version it targets, and any hard CSS assumption (Tailwind vs Bootstrap classes baked into templates). UX Live Components had meaningful behavioural changes across minor versions; pinning both sides is mandatory.
Sequencing.
Maintenance. Low upstream velocity is the headline. Plan to pin an exact version, vendor or fork the repository into internal source control, and accept that security fixes and Symfony-version bumps are ours to carry. Budget a recurring maintenance line item rather than assuming passivity.
Support. Community-only: GitHub issues, no SLA, no commercial support tier advertised, maintainer timezone EU business hours. Internal Symfony expertise is therefore a prerequisite, not a nice-to-have. A Laravel-only team has no path to self-support here at all.
Scaling. The server-driven model (each search/filter/sort is a request, typically rendered as a Turbo partial) is cheap per interaction and horizontally scales like any other request — no websocket or stateful tier. The scaling risk is data, not infrastructure: every filter and sort must be backed by appropriate indexes, and pagination must be enforced, or the table degrades into full scans. There is no caching or query-optimisation layer in the package; that burden is entirely on the integrating team. Large exports and unfiltered counts are the usual blow-up points.
Failure modes to plan for.
Ramp-up. A Symfony-fluent developer is productive in roughly a day: install, wire the bundle, point it at a query. A Laravel-only team's ramp-up is unbounded in the useful sense — the learning is Symfony UX and Twig, and the deliverable is still a rewrite. In that case the honest answer is that ramp-up cost exceeds the value of the package entirely.
Net: a modest, single-purpose Symfony UI component being evaluated against the wrong framework. The 0.66 score overstates the fit for a Laravel context; on that axis it is closer to a non-starter. Value is real but narrow, and contingent on the platform question being answered first.
How can I help you explore Laravel packages today?