Server authoritative
Search, sort, filters, selection, actions, and exports stay inside the capabilities declared by your table.
Define query capabilities and workflows in PHP, then render a complete Vue data table with one component.

The Laravel package owns normalized query state and server-side behavior. The Vue package renders the resource and sends every interaction back through Inertia. The browser never turns an undeclared column or filter into SQL.
use App\Models\Topic;
use Illuminate\Database\Eloquent\Builder;
use Musing\InertiaTable\Columns\DateTimeColumn;
use Musing\InertiaTable\Columns\TextColumn;
use Musing\InertiaTable\Table;
final class TopicsTable extends Table
{
public function query(): Builder
{
return Topic::query();
}
public function columns(): array
{
return [
TextColumn::make('name')->searchable()->sortable(),
DateTimeColumn::make('created_at')->sortable(),
];
}
}<DataTable :resource="topics" />Install both packages and render a searchable, sortable resource in a few minutes.
See filters, summaries, saved views, queued work, exports, and column layout together.
Start the guide or inspect the playground source.