forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js
3,411 31
Install
composer require forjedio/inertia-table
Latest Version:v1.2.0
PHP:^8.2
Laravel:12 · 13
License:MIT
Last Updated:May 30, 2026
Links: GitHub  ·  Packagist
Maintainer: richard-forjedio

Quick Example

class CompanyTable extends Table
{
    protected string $defaultSort = '-created_at';

    protected function columns(): array
    {
        return [
            LinkColumn::make('name', 'Name')
                ->route('companies.show', ['company' => ':id'])
                ->sortable(),
            TextColumn::make('email', 'Email')->sortable(),
            EnumColumn::make('status', 'Status')->sortable(),
            BooleanColumn::make('active', 'Active'),
            DateTimeColumn::make('created_at', 'Created')->sortable(),
            ActionsColumn::make(),
            Column::data('id'),
        ];
    }

    protected function searchable(): array
    {
        return ['name', 'email'];
    }
}

Pass it to your Inertia page:

return Inertia::render('Companies/Index', [
    'companies' => CompanyTable::make(Company::query())->paginate(),
]);

Render it on the frontend:

import { InertiaTable } from '@forjedio/inertia-table-react';

export default function Index({ companies }) {
    return <InertiaTable tableData={companies} />;
}

That's it. Search, sorting, pagination, and all cell rendering handled automatically.

Features

  • 11 column types - Text, Badge, Boolean, Date, DateTime, Link, Copyable, Enum, Component, Actions, and hidden data columns
  • Icon modifiers - withIcon() and asIcon() on any column with map, closure, or fixed icon support
  • Sorting - single-column with URL state, three-tier priority, - prefix for descending
  • Searching - global full-text search with configurable debounce
  • Pagination - full and simple modes with configurable per-page
  • Enum integration - PHP enums automatically render as coloured badges
  • Table hooks - beforeQuery and afterData hooks for query modification and data transformation
  • Frontend hooks - extension system for realtime updates, analytics, and feature flags
  • Link routing - Ziggy or server-side URL resolution (configurable)
  • Multiple tables - identifier system for independent tables on the same page
  • Component columns - register reusable frontend components for custom cell rendering
  • Dark mode - all styles include dark: variants out of the box
  • Fully customisable - override any cell, header, search, pagination, or toolbar via render props. Compatible with shadcn/ui.

Installation

Install the backend package via Composer:

composer require forjedio/inertia-table

Then install the frontend package for your stack:

# React
npm install @forjedio/inertia-table-react

# Vue
npm install @forjedio/inertia-table-vue

Both frontend packages need Tailwind to scan their dist/ so utility classes used by the table are emitted into your CSS bundle. See the per-package READMEs for the exact @source directive (Tailwind v4) or content entry (Tailwind v3):

Requirements

  • PHP 8.2+
  • Laravel 12 or 13
  • Inertia.js 2.x or 3.x
  • React 18/19 or Vue 3.4+
  • Tailwind CSS 3.4+ or 4.0+

Documentation

Full documentation is available at inertia-table.forjed.io.

Live Demo

See it in action at inertia-table-demo.forjed.io.

License

MIT

Related Packages

eklundlabs/inertiajs-datatables

Laravel inertiajs datatables

3 1
rudiwer/rwtable-laravel

Reusable RWTable backend package for Laravel applications.

34 0
givanov95/laravel-data-table

A server-side DataTable builder for Laravel with a matching Vue 3 + Inertia fron...

951 0
invue/tables

Native Vue 3 data table components for the Invue framework, wired to Eloquent vi...

137 0
dongrim/datatable-inertia

Easy build datatable for InertiaJS on Laravel

15 3

Version History

Version Released PHP Laravel License
v1.2.0 ^8.2 ^12.0|^13.0 MIT
v1.1.5 ^8.2 ^12.0|^13.0 MIT
v1.1.4 ^8.2 ^12.0|^13.0 MIT
v1.1.3 ^8.2 ^12.0|^13.0 MIT
v1.1.2 ^8.2 ^12.0|^13.0 MIT
Pre-releases (1)
Version Released PHP Laravel License
v1.0.0-rc.1 ^8.2 ^12.0|^13.0 MIT