- 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.