Tablin

A custom TypeScript data grid for embedding editable records in web applications. Its record store, query engine, layout, and DOM renderer are built here.

Working foundation. Commercial library, not yet available for purchase.

Tablin’s Orders example with search, filters, editable rows, and a CSV export control
Orders playground. Fictional sample data.Open the working example

Features

Typed records
Typed columns and codecs, stable row keys, and immutable published snapshots. The host’s original records are copied.
Local queries
Compiled filters and stable multi-column sorting, with cached query results and bounded provider windows.
Selection and editing
Selection follows record keys through sort and filter changes. Native editors validate changes, check row versions, and keep undo and redo history. Cell rectangles support copy and atomic paste within the loaded window.
Virtual rows
Custom fixed-height row virtualization, flexible column widths, sticky cells, and four row densities.
Framework neutral
A headless controller and a browser DOM renderer. No third-party grid, table, or virtualizer runtime is used.
Orders example
Search, status filters, column visibility, selection, and CSV export. Try 100, 10,000, or 100,000 seeded fictional orders.

Use

Define your columns and local provider, then mount the grid in a bounded host element. These APIs currently live in private workspace packages.

import { createGrid } from '@tablin/grid';
import '@tablin/themes/tablin.css';

const grid = createGrid(host, {
  id: 'Orders',
  datasetId,
  columns,
  provider,
});

await grid.ready();

See the complete example for the schema, provider, host sizing, and cleanup.

Keyboard

Use arrow keys to move between cells, Enter or F2 to edit, and Escape to cancel. Hold Shift with arrows to select cells, then use Ctrl or Cmd with C or V to copy and paste. Space toggles a row’s selection. Undo and redo use Ctrl or Cmd with Z.

Sortable column headers are native buttons. Shift-click adds a column to the current sort.

View the keyboard guide

Status

This is a local-data foundation. Tablin is a commercial library and is not yet available for purchase.

Compatible local queries can run in module workers. Edits outside the active filter and sort retain the accepted query order.

Rows have fixed heights, and columns are not virtualized. Remote providers, framework adapters, and the full accessibility conformance matrix remain outstanding.

Read the implementation status or inspect the engine benchmark baseline.