Infinite Table vs Mantine React Table

Mantine React Table is a ready-made Mantine table on top of TanStack Table. Infinite Table is a design-system-agnostic grid with zero dependencies.

Facts last verified on November 11, 2026, with a source link for each one.

TL;DR

Mantine React Table (MRT) gives Mantine apps a complete table on TanStack Table: column menus, filters, grouping with aggregation, tree rows, detail panels, editing modes and optional virtualization, all MIT-licensed. Its stable release (V1) targets Mantine 6; V2, for Mantine 7, has been in beta since February 2025, and neither supports Mantine 8 or 9.

Infinite Table has those features too, plus pivoting, lazy loading, cell selection, keyboard navigation and a context menu, with zero runtime dependencies and no design system attached. It is free to use with a footer.

When to choose which

Choose Mantine React Table if

  • Your app uses a Mantine version MRT supports, and you want a native-looking table.
  • You want an MIT license with no footer.
  • You already know TanStack Table or Material React Table.

Choose Infinite Table if

  • You're on Mantine 8 or 9, or don't use Mantine.
  • You need pivoting, lazy loading, cell selection or keyboard navigation.
  • Dependency count and bundle size matter to you.

Features

22 of the 30 features below are built into Infinite Table, every one in the free package. Mantine React Table has 16 built in, and 5 more partly or as headless logic, counting its most complete edition (Mantine React Table). Each Mantine React Table entry links to its documentation.

  • Built in
  • Partial / with limits
  • Logic only (headless)
  • Not available
  • Pro = needs that paid edition
Features of Infinite Table and Mantine React Table, by edition
FeatureInfinite TableFree with footer · $395 per developer per yearMantine React TableMIT · Free
Rendering
Row virtualizationOnly the visible rows are rendered, out of the box.
Yessource
YesOpt-in.source
Column virtualizationOnly the visible columns are rendered, out of the box.
Yessource
YesOpt-in.source
Columns
Multi-column sortingBuilt-in sorting UI, including sorting by several columns.
Yessource
Yessource
Column filtersBuilt-in filter UI: a filter row, header filters or a filter menu.
YesFilter row with operators, client-side or server-side.source
Yessource
Column resizingUsers drag to resize columns.
Yessource
Yessource
Column reorderingUsers drag and drop columns to reorder them.
Yessource
Yessource
Column pinningPin (freeze) columns to the left or right.
Yessource
Yessource
Column groupsMulti-level, grouped column headers.
Yessource
Yessource
Column menuA built-in column header menu (sort, hide, pin...).
Yessource
Yessource
Grouping and analysis
Row groupingGroup rows by one or more columns, with expand and collapse.
Yessource
Yessource
AggregationsAggregated values (sum, average...) for groups or totals.
Yessource
Yessource
PivotingPivot rows into dynamically generated columns.
Yessource
No
Tree dataHierarchical (tree) rows.
Yessource
Yessource
Master-detailExpandable detail rows with custom content or a nested grid.
Yessource
Yessource
Server data
Lazy loadingLoad rows from a server in batches as the user scrolls.
Yessource
NoThe infinite scrolling example builds it with TanStack Query.source
Server-side sort, filter and groupBuilt-in support for sorting, filtering and grouping on the server.
YesSorting, filtering, grouping and pivoting can all run on the server.source
PartialManual modes turn off client-side processing; you fetch the data.source
Pagination UIA built-in pager.
NoNo pager UI. Live pagination loads the next page as you scroll.source
Yessource
Editing and interaction
Cell editingInline cell editing with built-in editors.
Yessource
Yessource
Row selectionSelect rows, including checkbox selection.
Yessource
Yessource
Cell selectionSelect multiple cells or ranges of cells.
Yessource
No
Keyboard navigationMove between cells with the keyboard.
Yessource
No
Context menuA built-in cell or row context menu.
Yessource
No
Row drag and dropReorder rows by dragging them.
No
PartialDrag handles; you reorder the data.source
Export and charts
ClipboardCopy (and paste) cells, built in.
No
PartialClick to copy one cell.source
CSV exportBuilt-in export to CSV.
No
NoThe docs show how to export with third-party libraries.source
Excel exportBuilt-in export to Excel (.xlsx).
No
No
Integrated chartsChart grid data from inside the grid.
NoCells can render any component, for example sparklines.source
No
Styling and accessibility
Theming with CSS variablesTheme the grid through CSS custom properties or design tokens.
Yessource
PartialMantine theme; CSS variables in the V2 beta.source
Documented accessibilityARIA roles and screen reader support, documented by the vendor.
NoKeyboard navigation is built in, but ARIA roles and screen reader support are not documented.
No
Right-to-leftRight-to-left layout support.
No
PartialRTL column resizing in the V2 beta.source

Side by side

Live side-by-side demo: coming soonGrouping and detail rows in both tables. The same rows grouped, with detail panels, in Mantine React Table and Infinite Table.Until then, try the full Infinite Table demo or see the benchmark.

Licensing and pricing

List prices as published by each vendor, in US dollars. Follow the source links for the full terms.

Editions, licenses and prices
EditionLicenseList priceConditionsDeployment
Infinite TableCommercial (EULA)$395 per developer per yearVolume discounts: 5% from 3 developers, 10% from 5, 15% from 10. For 20 or more developers, email us.sourceEvery feature is free to use, in any product, as long as the "Powered by Infinite Table" footer stays visible. A license removes the footer and adds email support.Development licenses only: no deployment, application or SaaS licenses.
Mantine React TableMITFreesourceMIT: free in personal and commercial projects.None (MIT).

Bundle size and dependencies

Every dependency is code you ship and a package you have to trust and keep updated. Infinite Table has none.

Bundle size and dependencies
PackageJS, min + gzipCSS, min + gzipRuntime dependenciesFrom other publishers
Infinite Table for React@infinite-table/infinite-react@10.1.4145 kB5.7 kB00
Infinite Table for Vue@infinite-table/infinite-vue@10.1.4126 kB5.4 kB00
Mantine React Tablemantine-react-table@1.3.4165 kB–106
list@babel/code-frame@7.29.7, @babel/generator@7.29.13, @babel/helper-globals@7.29.7, @babel/helper-module-imports@7.29.7, @babel/helper-string-parser@7.29.13, @babel/helper-validator-identifier@7.29.7, @babel/parser@7.29.13, @babel/runtime@7.29.13, @babel/template@7.29.7, @babel/traverse@7.29.13, @babel/types@7.29.11, @emotion/babel-plugin@11.13.5, @emotion/cache@11.14.0, @emotion/hash@0.9.2, @emotion/memoize@0.9.0, @emotion/react@11.14.0, @emotion/serialize@1.3.3, @emotion/sheet@1.4.0, @emotion/unitless@0.10.0, @emotion/use-insertion-effect-with-fallbacks@1.2.0, @emotion/utils@1.4.2, @emotion/weak-memoize@0.4.0, @floating-ui/core@1.8.0, @floating-ui/dom@1.8.0, @floating-ui/react-dom@1.3.0, @floating-ui/react@0.19.2, @floating-ui/utils@0.2.12, @jridgewell/gen-mapping@0.3.13, @jridgewell/resolve-uri@3.1.2, @jridgewell/sourcemap-codec@1.6.0, @jridgewell/trace-mapping@0.3.31, @mantine/core@6.0.22, @mantine/dates@6.0.22, @mantine/hooks@6.0.22, @mantine/styles@6.0.22, @mantine/utils@6.0.22, @radix-ui/number@1.0.0, @radix-ui/primitive@1.0.0, @radix-ui/react-compose-refs@1.0.0, @radix-ui/react-context@1.0.0, @radix-ui/react-direction@1.0.0, @radix-ui/react-presence@1.0.0, @radix-ui/react-primitive@1.0.1, @radix-ui/react-scroll-area@1.0.2, @radix-ui/react-slot@1.0.1, @radix-ui/react-use-callback-ref@1.0.0, @radix-ui/react-use-layout-effect@1.0.0, @tabler/icons-react@3.51.0, @tabler/icons@3.51.0, @tanstack/match-sorter-utils@8.8.4, @tanstack/react-table@8.10.6, @tanstack/react-virtual@3.0.0-beta.63, @tanstack/table-core@8.10.6, @tanstack/virtual-core@3.0.0-beta.63, @types/parse-json@4.0.2, aria-hidden@1.2.6, babel-plugin-macros@3.1.0, callsites@3.1.0, clsx@1.1.1, convert-source-map@1.9.0, cosmiconfig@7.1.0, csstype@3.0.9, csstype@3.2.3, dayjs@1.11.23, debug@4.4.3, detect-node-es@1.1.0, error-ex@1.3.4, es-errors@1.3.0, escape-string-regexp@4.0.0, find-root@1.1.0, function-bind@1.1.2, get-nonce@1.0.1, hasown@2.0.4, hoist-non-react-statics@3.3.2, import-fresh@3.3.1, is-arrayish@0.2.1, is-core-module@2.18.0, js-tokens@4.0.0, jsesc@3.1.0, json-parse-even-better-errors@2.3.1, lines-and-columns@1.2.4, ms@2.1.3, parent-module@1.0.1, parse-json@5.2.0, path-parse@1.0.7, path-type@4.0.0, picocolors@1.1.1, react-is@16.13.1, react-remove-scroll-bar@2.3.8, react-remove-scroll@2.7.2, react-style-singleton@2.2.3, react-textarea-autosize@8.3.4, remove-accents@0.4.2, resolve-from@4.0.0, resolve@1.22.14, source-map@0.5.7, stylis@4.2.0, supports-preserve-symlinks-flag@1.0.0, tabbable@6.5.1, tslib@2.9.1, use-callback-ref@1.3.3, use-composed-ref@1.4.0, use-isomorphic-layout-effect@1.2.1, use-latest@1.3.0, use-sidecar@1.1.3, yaml@1.10.3
106

Measured on November 11, 2026 with the latest versions on npm. Runtime dependencies: every package that npm install adds besides the grid's own packages and the framework, including required peer dependencies. JS / CSS: esbuild 0.25.10 bundle of the minimal getting-started usage, minified, React or Vue left out, gzip level 9 (kB = 1,000 bytes). Fonts and images are not counted. Numbers include required peers such as a design system, so they are lower if your app already ships those. The measurement script is open source: run it to reproduce or update these numbers.

Framework support

Supported frameworks
FrameworkInfinite TablesourceMantine React Tablesource
ReactYesYes
VueYesNo
  • Infinite Table: React 18+ (@infinite-table/infinite-react) and Vue 3.4+ (@infinite-table/infinite-vue), same features and version.
  • Mantine React Table: The stable V1 needs Mantine V6; V2, for Mantine V7, is in beta.

Migrating from Mantine React Table

MRT column definitions follow TanStack Table (accessorKey, header, Cell); Infinite Table uses a columns object with field.

Mantine React Table

import { MantineReactTable, useMantineReactTable } from 'mantine-react-table';
import type { MRT_ColumnDef } from 'mantine-react-table';

type Car = { id: number; make: string; model: string; price: number };

const data: Car[] = [
  { id: 1, make: 'Tesla', model: 'Model Y', price: 64950 },
  { id: 2, make: 'Ford', model: 'F-Series', price: 33850 },
];

const columns: MRT_ColumnDef<Car>[] = [
  { accessorKey: 'make', header: 'Make' },
  { accessorKey: 'model', header: 'Model', size: 200 },
  {
    accessorKey: 'price',
    header: 'Price',
    Cell: ({ cell }) => <b>{cell.getValue<number>()}</b>,
  },
];

export function Cars() {
  const table = useMantineReactTable({
    columns,
    data,
    getRowId: (row) => String(row.id),
    initialState: { sorting: [{ id: 'make', desc: false }] },
  });
  return <MantineReactTable table={table} />;
}

Infinite Table

import { DataSource, InfiniteTable } from '@infinite-table/infinite-react';
import type { InfiniteTablePropColumns } from '@infinite-table/infinite-react';
import '@infinite-table/infinite-react/index.css';

type Car = { id: number; make: string; model: string; price: number };

const data: Car[] = [
  { id: 1, make: 'Tesla', model: 'Model Y', price: 64950 },
  { id: 2, make: 'Ford', model: 'F-Series', price: 33850 },
];

const columns: InfiniteTablePropColumns<Car> = {
  make: { field: 'make', header: 'Make' },
  model: { field: 'model', header: 'Model', defaultWidth: 200 },
  price: {
    field: 'price',
    header: 'Price',
    renderValue: ({ value }) => <b>{value}</b>,
  },
};

export function Cars() {
  return (
    <div style={{ height: 500, display: 'flex' }}>
      <DataSource<Car>
        primaryKey="id"
        data={data}
        defaultSortInfo={{ field: 'make', dir: 1 }}
      >
        <InfiniteTable<Car> columns={columns} />
      </DataSource>
    </div>

How Mantine React Table concepts map to Infinite Table
Mantine React TableInfinite Table
accessorKeyfield
headerheader
sizedefaultWidth, or the columnSizing prop
CellrenderValue or render
getRowIdprimaryKey on <DataSource>
initialState.sortingdefaultSortInfo, sortInfo on <DataSource>
enableGrouping, grouping statedefaultGroupBy, groupBy on <DataSource>
renderDetailPanelrowDetailRenderer

What Mantine React Table does well

  • A ready-made Mantine data table on top of TanStack Table: toolbar, menus, filters and pagination included. source
  • It respects your Mantine theme. source
  • MIT with no paid tier, including grouping, aggregation, tree rows and detail panels. source
  • Five editing modes and many filter variants. source
  • Shares its API with Material React Table, which it was forked from. source

npm "latest" is still V1 (1.3.4, November 2023, for Mantine V6). V2 is 2.0.0-beta.9 (February 2025). Neither supports Mantine 8 or 9. source

FAQ

Which Mantine versions does Mantine React Table support?

MRT V1 (the npm latest release) needs Mantine 6, and the V2 beta needs Mantine 7. Neither peer range includes Mantine 8 or 9. Infinite Table doesn't depend on a design system.

Does Mantine React Table support pivoting?

No pivoting feature is documented. It has grouping with aggregation, inherited from TanStack Table. Infinite Table has built-in pivoting.

Is Infinite Table free to use?

Yes. Every feature is free to use, in any product and in production, as long as the "Powered by Infinite Table" footer stays visible. A license removes the footer and adds email support: $395 per developer per year, with volume discounts and no deployment or application licenses. See pricing.

How many dependencies does Mantine React Table have, compared to Infinite Table?

Infinite Table has 0 runtime dependencies: installing it adds one package. Mantine React Table adds 106 (106 from other publishers), counting required peer dependencies but not React. Measured on November 11, 2026 with the latest versions on npm.

How big is Mantine React Table compared to Infinite Table?

Bundling the minimal getting-started usage with esbuild, minified and gzipped, without React: Infinite Table 145 kB of JavaScript, Mantine React Table 165 kB. CSS is measured separately; the table above has both.

Try Infinite Table

npm i @infinite-table/infinite-react for React, or npm i @infinite-table/infinite-vue for Vue. Every feature is in the package.

Other comparisons

Sources

Sources and corrections

Every statement about another product links to the vendor's own documentation, pricing or license page. Mantine React Table facts were last verified on November 11, 2026. Prices are list prices as published; taxes, discounts and quotes can differ. Products change quickly, so please check the vendor's site before you buy.

Spotted something wrong or out of date? We'll fix it: open a correction issue, edit the data on GitHub or email us.

Official links for Mantine React Table: website, docs, license, repository.