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

Tables Laravel Package

beartropy/tables

Beartropy Tables is a Livewire table component for the TALL stack with search, sorting, filters, bulk actions, and column toggling. It includes inline editing and boolean toggles with per-field authorization hooks to control writes.

View on GitHub
Deep Wiki
Context7

Beartropy Tables is a flexible Livewire table component for the TALL stack (Tailwind, Alpine, Laravel, Livewire). It provides the essentials for building data tables, with inline editing guarded by explicit authorization hooks so sensitive columns can be protected.

  • Searchable & sortable columns out of the box
  • Filters and bulk actions for refining and acting on datasets
  • Column toggling so users can show or hide fields
  • Inline editing limited to ->editable() columns
  • Authorization hooks for field updates and boolean toggles
Frequently asked questions about Tables
What is Beartropy Tables and what features does it include?
Beartropy Tables is a Livewire table component built for the TALL stack (Tailwind, Alpine, Laravel, Livewire). It ships with searchable and sortable columns, filters, bulk actions, column toggling, and inline editing with boolean toggles. Write actions are gated by explicit authorization hooks so you can protect sensitive columns.
How do I install beartropy/tables in a Laravel application?
Install it with Composer via composer require beartropy/tables, then scaffold a table component with the make:btable command and extend the BeartropyTable base class. Full installation, configuration, and advanced usage docs live at beartropy.com/tables rather than in the repository. Plan to review that external site alongside the installed release, since it can drift from the shipped code.
Which Laravel and Livewire versions does beartropy/tables support?
The package declares support for Livewire ^3.7 or ^4.0 and is tested against Laravel 13 using Testbench 11. That is forward-looking, but each adjacent major version (Livewire 4, Laravel 13) is a compounding compatibility bet. Confirm your app's Laravel and Livewire versions fall inside the declared range before adopting it.
How do I make columns searchable, sortable, or editable in Beartropy Tables?
Columns are defined in your component's columns() method, where you opt into search, sorting, filters, bulk actions, and column toggling per field. Inline editing is restricted to columns explicitly marked with ->editable(); merely existing as a column does not make it a write target. Boolean toggles ignore any column key that is not part of columns().
How does inline editing authorization work in beartropy/tables?
Three hooks control browser-reachable write paths: authorizeFieldUpdate, authorizeFieldUpdateRaw, and authorizeToggle. All three default to true, meaning they permit the write, so they are hooks rather than automatic protection. Eloquent-backed tables pass the resolved record to authorizeFieldUpdate, letting you apply policy checks such as auth()->user()->can().
Is it safe to expose sensitive columns with inline editing enabled?
Not without explicit overrides. Because the authorization hooks default to permitting writes, any table exposing sensitive columns must override them with your own policy checks. The v2.10.0 changelog also records that earlier versions wrote through non-editable columns and array or stdClass-backed tables without authorization checks at all; those are fixed, but the hook-based pattern still places the full write-authorization burden on your integration team. Consider fail-closed defaults in your own base class.
Can I use Beartropy Tables with Vue, React, or Inertia?
No. It is purpose-built for the TALL stack as a Livewire component with Tailwind and Alpine views, so it slots in cleanly only when Livewire already drives your UI. It is a non-starter for Inertia/Vue, React, or API-first frontends. Also verify that your Tailwind build and Blade layout can host the component markup without CSS conflicts, since the changelog shows recurring row-opacity and header styling fixes.
How does Beartropy Tables compare to Filament or Rappasoft Livewire Tables?
Beartropy Tables is a narrower-scope, greenfield-friendly alternative rather than a drop-in replacement, and the package itself describes it as yet another Livewire table package provided as is. It has very low adoption (a handful of GitHub stars and zero dependents), so there is little production signal to compare against more established options. Its intended relationship to Filament is not documented, so confirm scope with the maintainer before committing.
Is beartropy/tables actively maintained and safe for production?
It is effectively a single-maintainer package with active investment in developer experience (243 tests since v2.8.0, MCP tooling, reference docs), but low stars and zero dependents mean you may be one of the few production users absorbing undiscovered edge cases. v2.10.0 is explicitly BREAKING despite being a minor release, and earlier releases renamed the base class and service provider, so treat the API as unsettled. Ask the maintainer about support commitments, breaking-change cadence, and the caching contract (TTL, invalidation, multi-tenant scoping, behavior under queue workers and Octane) before relying on it.
How do I test a Beartropy Tables component?
Test it like any Livewire component: instantiate the table with Livewire::test, assert that rendered rows, sorting, filters, and bulk actions behave as expected, and cover your authorization hooks with allowed and denied cases. The package itself carries a substantial suite (243 tests since v2.8.0), which you can use as a reference for edge cases. Pay particular attention to tests around non-editable columns and non-Eloquent data sources, since those were previously weak spots.
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.
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
jjsquady/round-robin