@zvndev/yable-core
Sorting, filtering, formulas, pivot tables, clipboard, tree data.
Yable is a TypeScript-first data table that ships pivot tables, formulas, clipboard, fill handle, undo/redo and async commits in the same MIT package. The features others charge $1,000+/dev/year for — free here, on contact.
Operator | Desk | Budget | Live |
|---|---|---|---|
Alice JohnsonEngineer | Engineering | $125,000 | Online |
Bob SmithDesigner | Design | $95,000 | Online |
Carol WilliamsVP Engineering | Engineering | $210,000 | Online |
David BrownProduct Manager | Product | $140,000 | Online |
Sorting, filtering, formulas, pivot tables, clipboard, tree data.
Table primitives, hooks, cell editors, pagination, status bars.
Plain-JS rendering for teams that need the engine without React.
Eight built-in visual systems with light and dark support.
Real tokenizer, AST parser, recursive evaluator with dependency tracking and circular-reference detection. 17 built-in functions including SUM, AVG, IF, CONCAT, POWER, ROUND.
=SUM(B2:B12) * IF(D2 > 100, 1.1, 1)Row groups, column groups, value aggregation, row + column subtotals, grand totals, dynamic columns. Gated behind paywalls in MUI Premium and AG Grid Enterprise; free here.
rowFields: ["region"]
columnFields: ["quarter"]
valueFields: [{ field: "revenue", aggregation: "sum" }]Edit cells, commit batches to a backend, see pending / saved / error states inline, retry failed rows, surface conflicts as typed errors. Built for real product teams.
onCommit: async (patches) => {
await api.save(patches)
}This page turns the demo into a proper front door for the package: the table is the hero, the framing is intentional, and every tab proves a different part of the system.
Search, sort, select, and paginate without leaving the same component tree.
Click a header to sort. Shift-click to multi-sort.
First Name | Last Name | Email | Age | Department | Role | Salary | Start Date | Status | |
|---|---|---|---|---|---|---|---|---|---|
| Alice | Johnson | alice@example.com | 32 | Engineering | Engineer | $125,000 | Mar 15, 2021 | Active | |
| Bob | Smith | bob@example.com | 28 | Design | Designer | $95,000 | Jul 1, 2022 | Active | |
| Carol | Williams | carol@example.com | 45 | Engineering | VP Engineering | $210,000 | Jan 10, 2019 | Active | |
| David | Brown | david@example.com | 35 | Product | Product Manager | $140,000 | Nov 20, 2020 | Active | |
| Eve | Davis | eve@example.com | 26 | Engineering | Junior Engineer | $85,000 | Feb 14, 2023 | Active | |
| Frank | Miller | frank@example.com | 41 | Design | Senior Designer | $130,000 | Sep 5, 2018 | Inactive | |
| Grace | Wilson | grace@example.com | 30 | Engineering | Engineer | $120,000 | Jun 30, 2021 | Active | |
| Henry | Moore | henry@example.com | 38 | Engineering | Engineering Manager | $175,000 | Apr 22, 2019 | Active | |
| Ivy | Taylor | ivy@example.com | 29 | Design | Designer | $100,000 | Jan 17, 2022 | Active | |
| Jack | Anderson | jack@example.com | 33 | Engineering | Data Scientist | $145,000 | Aug 12, 2020 | Active |
Every cell in the Yable column is verifiable in this repo. No paid tiers, no gated features — the entire library is MIT.
| Feature | YableMIT · free | TanStack TableMIT · free | AG Grid CommunityMIT · free | AG Grid Enterprise~$1k+ / dev / yr |
|---|---|---|---|---|
| Headless core | ● | ● | — | — |
| React components shipped | ● | — | ● | ● |
| Cell editing (text, select, checkbox…) | ● | — | ● | ● |
| Sorting / filtering / pagination | ● | ● | ● | ● |
| Pivot tables | ● | — | — | $ |
| Formula engine | ● | — | — | $ |
| Clipboard copy / paste / TSV | ● | — | — | $ |
| Fill handle (linear + geometric) | ● | — | — | $ |
| Undo / redo with event hooks | ● | — | ● | ● |
| Tree data / hierarchical rows | ● | — | — | $ |
| Async cell commits + retry | ● | — | — | — |
| 8 themed token packs | ● | — | ◐ | ◐ |
| Row virtualization | ● | ◐ | ● | ● |
| Keyboard navigation grid | ● | — | ● | ● |
| License | ● | ● | ● | $ |
The quickstart walks from zero to a fully interactive Yable table in 11 steps. Each step has copy-paste code that has been booted in a real Next.js app.