components/tabledrag
Components/TableDrag adds drag-and-drop row reordering to Laravel tables. Sort rows with a simple handle, persist the new order to your database, and integrate with Blade or Livewire views. Lightweight, framework-friendly, and easy to drop into existing admin listings and data grids.
components/tabledrag) that suggests a Drupal module repackaged rather than a Laravel-ecosystem package. Adopting it means you own it — permanently.Consider reading its source (not depending on it) if:
tabledrag behaviors, drupalSettings, and jQuery-era form APIs already exist. Here the fork may be closer to home than it looks.Look elsewhere — decisively — if any of the following is true:
Illuminate integration, and probable deprecation or fatal errors.Recommended substitutes: SortableJS (or sortablejs + a thin Laravel wrapper) for the drag layer, Livewire Sortable or Alpine + Sortable for reactive stacks, and a nested-set package (e.g. kalnoy/nestedset) for the persistence side. This combination is actively maintained, MIT-licensed, and covers the same feature set in an afternoon rather than a sprint.
To executives: We evaluated a package for nested drag-and-drop table sorting. My recommendation is not to adopt it. It is a single-maintainer, single-star repository with no downstream users, no release in over seven years, and a GPL-2.0 license that creates legal exposure for a closed-source product. The feature it addresses is real and worth building — but the package is not the shortcut it appears to be; adopting it converts a two-day integration into an indefinite maintenance and legal liability.
To engineering: Treat this as a specification, not a dependency. The code encodes a well-understood pattern (flat table + weight column + parent/depth indentation, with weight compaction on drop) and is useful to read for edge cases around renumbering and tree re-parenting. Do not add it to composer.json. It is a Drupal 8 fork, so expect Drupal form-API coupling, jQuery globals, PHP 7-era syntax, and no Laravel service provider. Build the feature on SortableJS (MIT) plus a nested-set package for persistence, behind our own Blade/Livewire component. Estimated effort: one to two days for a standard two-level table; three to five if true arbitrary-depth nesting and full keyboard accessibility are required. Flag the accessibility work explicitly in the estimate — it is usually the majority of the cost.
Bottom line: Low adoption risk if ignored, high total cost of ownership if adopted. Score 0.005, one star, zero dependents, and a five-year-old last release is the entire due-diligence story.
How can I help you explore Laravel packages today?