v0.1.0 · stable
Elyra DataGrid · Data grid

Ten million rows.
Thirty milliseconds.

The data grid is the most demanding component you ship. Elyra DataGrid is the only one that is server-driven, scales to millions of rows, works across Livewire, Vue and Svelte, and follows your Tailwind theme — all at once. One protocol, three clients, one PHP server.

Why it's different

Grids force a compromise.
This one doesn't.

Client-bound grids fall over past a few thousand rows. Ecosystem-locked grids marry you to one framework. Headless cores leave the server, filtering UI, editing and export as homework. Elyra DataGrid makes four decisions instead.

01

One protocol, many clients

A small JSON contract — GridRequest / GridResponse — generates both the TypeScript types and the PHP DTOs from one source. The Livewire, Vue and Svelte clients are genuinely interchangeable and always in sync. You are never locked into one frontend.

02

Server-driven by design

Sorting, filtering, grouping, aggregation, search and paging run in the database, never in JavaScript. The client renders only a viewport — so the grid behaves the same over 100 rows and 10,000,000. The work is O(viewport), not O(data).

03

Native to ElyraSQL

The server turns database features straight into grid features: FACET value lists with counts, WITH ROLLUP subtotals, percentile/median footers, HYBRID semantic + full-text search, and streamed cursor exports of millions of rows at constant memory. A generic MySQL fallback keeps it portable.

04

Follows your app

A Tailwind v4-native theme that inherits your palette, accent and dark mode automatically — it looks like part of your app on day one, not a bolted-on widget.

One grid, your stack

Pick the client. Keep the grid.

The same features, keyboard spec and server — three first-class clients that share a headless TypeScript core and one PHP package.

Server-driven
Livewire + Flux UI

Grid state lives in the component; the protocol request is built and answered during render. Drop it into a Blade view — no build step, no API endpoint to wire.

Client-driven
Vue 3 + Inertia

A headless engine holds state and POSTs the protocol request to a Laravel endpoint, with SSR-seeded first paint so the first screen is instant.

Client-driven
Svelte 5 + Inertia

The same headless core with Svelte 5 runes — virtual rows and columns, the full keyboard spec, and your Tailwind theme, on the Inertia stack.

Measured, not claimed

Fast at any size —
because size stops mattering.

Benchmarked against a 10,000,000-row table on ElyraSQL 1.4.7. Interactive operations — paging, sorting, filtering — stay flat because the grid only ever queries a viewport.

See the full benchmark
~30 ms
Viewport page (20 rows)
~30 ms
Page within a filter
~29 ms
Sort by an indexed column
10M
Rows, streamed export at constant memory

Everything a grid needs. Nothing left as homework.

Sort & filter

Multi-column sort and per-column filters, plus an advanced AND/OR filter builder — all resolved in the database.

Faceted filtering

Filter-by-checkbox value lists with live counts (FACET), computed lazily — only when a filter panel opens.

Grouping & aggregates

Group by any column with subtotals (WITH ROLLUP), non-additive aggregates like median/percentile, and expandable detail rows.

Paging & virtual scroll

Classic paging or smooth virtual scrolling — rows and columns virtualized — across all three clients.

Editing

Inline, in-cell, modal or slideover editing, with batch edits — validated on the server.

Selection & keyboard

Row and range selection with a complete keyboard spec and clipboard support — spreadsheet-grade navigation.

Master-detail & tree

Expandable master-detail rows and full tree-grid hierarchies, lazily loaded from the server.

Frozen & auto-fit columns

Freeze columns left and right, auto-fit widths, reorder and resize — with column virtualization for very wide grids.

Streamed export

Streamed CSV and rich XLSX of the full result set — millions of rows — from a server cursor at constant memory.

Hybrid search

A search box that understands meaning, not just substrings — semantic + full-text (HYBRID) via ElyraSQL.

Themed for your app

Tailwind v4-native theming that inherits your palette, accent and dark mode with no configuration.

Localization & state

Localizable UI and persistent grid state (columns, sort, filters) across sessions.

Pricing

A commercial license,
for a grid you won't outgrow.

Not open source — every plan ships the full source of all packages (protocol, PHP server, headless core, all three clients and the theme), updates and support. Free to evaluate on local and development domains; a license activates your production domains. One purchase covers Livewire, Vue and Svelte.

Single
$49 / year
1 production domain
Popular
Team
$199 / year
5 production domains
Unlimited
$650 / year
Unlimited domains
Limited
Lifetime
$999 one-time
Unlimited domains, forever

All annual plans renew yearly and include updates + support for the term. The Lifetime plan is a one-time purchase with perpetual updates — a limited launch offer. See the licensing docs for details.

Elyra DataGrid · v0.1.0 Built in Norway · MMXXVI