compare
TanStack Table Alternative, Batteries Included
Last updated 9 September 2026
TanStack Table is free and MIT-licensed, and none of that is in dispute. It is also headless by design: it hands you the logic and leaves you the rendering. So the question was never what TanStack costs to download. It is what the other half costs to build, and then to keep working.
Build on localhost, free Do the build-versus-buy maths
No key, no countdown, no sales call.
The opponent on this page is your own code
A headless table gives you sorting, filtering, grouping and pagination as state and hooks. What a headless library does not hand you is anything you can see. Rendering, row and column virtualisation for large data, an editing pipeline with validation and undo, Excel export, the filter UI, a keyboard navigation model and the ARIA roles that make the whole thing usable by a screen reader are all yours to write, and then yours to maintain as browsers and requirements move. That is the right trade when you need total control of the interface. It is a poor one when you needed a grid and ended up maintaining a grid framework to get it. On this page the thing you are really weighing Lattice Grid against is the code your team would write and own.
It is not one library, it is a stack
Headless rarely stays a single dependency. By the time the screen ships, the typical build is four moving parts that your team assembles and then owns:
- The table core for the sort, filter and group state.
- A virtualiser for rows, and again for columns, wired in by hand so large data does not stall.
- A component or UI kit to supply the actual markup, headers, cells, menus and inputs.
- Your own glue for the editing pipeline, export, the filter UI, the keyboard model and the accessibility layer.
Lattice Grid is the whole of that as one thing, already assembled and already maintained. You configure a grid rather than integrate a stack.
The build-versus-buy worksheet
Rough sizes below, for a grid that has to hold real data and be used all day. Fill in the last column with your own estimate for your team and your design, then compare the total against a licence that is $1,000 once.
| The part you would build | Typically | Your weeks | In Lattice Grid |
|---|---|---|---|
| Rendering and markup | 1 to 2 weeks | Built in | |
| Row and column virtualisation | 2 to 4 weeks | Both axes, built in | |
| Editing, validation, undo | 3 to 6 weeks | Built in, one undo stack | |
| Excel and CSV export | 1 to 2 weeks | Built in, no extra dependency | |
| Filter and column UI | 2 to 3 weeks | Built in | |
| Keyboard model and ARIA | 2 to 4 weeks | Built in | |
| Charts and statistics | 2 weeks and up | Built in | |
| Ongoing maintenance of all of it | Every browser update, indefinitely | Ours, not yours |
If the total is more than a few weeks of one engineer's time, it is already more than a $1,000 per-domain licence, and that is before the second time a browser update breaks your virtualisation and it is your ticket. The maintenance row is the one that keeps costing after launch.
Nothing is gated. Start there.
The whole grid runs on localhost, free: every feature, no key, no countdown, no sales call. Deploy it somewhere without a key and it still renders everything, with a small trial watermark. So the honest first move is to build the screen against your real data and see how much of that worksheet is already done for you.
Below is a live grid holding one million rows on this page, virtualised on both axes. Row and column virtualisation is the part you would wire in by hand with a headless stack. Scroll it, sort it, and watch it stay smooth.
Accessibility is the part that is hardest to retrofit
Headless means you supply the markup, and accessibility lives in the markup. The grid role and its relationships, roving focus across cells, the full keyboard model, the right announcements for a screen reader as selection and sorting change, and focus management through editing are all yours to build and, harder, yours to get right and keep right. It is the work most likely to be deferred and most expensive to add once the grid is already in production. Lattice Grid ships a keyboard model and the ARIA already built and maintained, so a grid that is usable without a mouse and legible to a screen reader is the starting point, not a later project.
Migrating is mostly deleting
Moving from a headless build is unusual in a good way: most of it is subtraction. The state config you keep in a thin form; nearly everything you wrapped around it, you remove. What tends to go:
- The virtualiser wiring for rows and columns.
- The editing reducer, the validation and the undo stack you wrote.
- The export code and its dependency.
- The filter and column UI components.
- The keyboard and ARIA helpers, and the tests that guard them.
What you are left configuring maps closely to what you already have. The short version:
| TanStack Table concept | Lattice Grid equivalent |
|---|---|
ColumnDef | an entry in columns |
accessorKey | field |
accessorFn | column.value.compute |
cell renderer | column.render or a renderer name |
useReactTable | createGrid |
row models (getCoreRowModel and the rest) | built in; nothing to assemble |
flexRender and your markup | rendering is built in |
The only reliable way to size it is to build the real screen against your own data. On localhost that is free. If it looks worth doing, tell us what you are coming from and we will help. Get in touch.
When TanStack Table is the right choice
Headless is not a mistake. If you want to own the markup and the interaction completely, have the engineering capacity to build and maintain a rendering layer, and your design genuinely cannot be reached by configuring an existing grid, TanStack Table is an excellent tool and the right one for the job. Stay there with a clear conscience; this page is not an argument against a library that does its half well.
For everyone else, Lattice Grid is the faster path. The rendering, row and column virtualisation, the editing pipeline, Excel export, the filter UI, the keyboard model and the ARIA are already built and already maintained, so you start with a working grid rather than a project to build one. It carries no runtime dependencies and needs no build step, and it adds charts and a live statistics and value-diagnostics layer over your filtered rows that a headless library leaves entirely to you. A per-domain licence is $1,000 once, with unlimited developers. If you picked headless to save a licence fee and are now maintaining a grid engine you never meant to write, that is the trade worth reconsidering.
Common questions
Is Lattice Grid a TanStack Table alternative?
They solve different halves of the problem. TanStack Table is a headless library: it hands you the state and the logic for sorting, filtering, grouping and pagination, and the markup, virtualisation, editing, export and accessibility model are yours to write. Lattice Grid is the built grid, rendering included. The choice is not price, since TanStack is free; it is whether you want to build the interface or start with it built.
Can I keep TanStack Table for state and use Lattice Grid just for rendering?
No, and it is worth being clear about why. Lattice Grid is not a rendering layer you bolt onto another library. It holds its own data, in columns, and owns sorting, filtering, grouping, editing and undo against that data. Pairing it with TanStack would mean two things claiming to own the same state. It is a replacement for the whole grid, not a view you attach to a headless core.
TanStack Table is free and Lattice Grid is not. Why pay?
Because headless is free to license and expensive to finish. The parts a headless library leaves to you, row and column virtualisation, an editing pipeline, Excel export, filter UI, a keyboard model and the ARIA to make it accessible, are weeks of engineering and then ongoing maintenance. A per-domain licence is $1,000 once. The question is whether that build and its upkeep costs you more than that.
When should I use TanStack instead?
When you want total control of the markup and the interaction, have the engineering capacity to build and maintain the rendering layer, and your design cannot be expressed by configuring an existing grid. In that case headless is the right tool and you should use it.
TanStack Table is free and MIT-licensed, per tanstack.com/table on 5 September 2026; re-check before relying on it. Lattice Grid pricing is on our own pricing page.
Build it on localhost. Decide afterwards.
See how much is already built. Every feature, no key, no time limit. License the domain when you are ready to ship.
Or open the demos, see the pricing, or read how the engine works. Compare against AG Grid and MUI X.