Infinite Table vs AG Grid
AG Grid has the widest feature set and four frameworks. Infinite Table includes grouping, pivoting and tree data in one zero-dependency package, free to use with a footer.
Facts last verified on November 11, 2026, with a source link for each one.
AG Grid is the most complete grid in this comparison. Integrated charts, Excel and PDF export, clipboard paste, formulas, tool panels and a server-side row model, for React, Angular, Vue and plain JavaScript. If you need those, it is hard to beat, and its MIT Community edition is generous.
Infinite Table covers most of what teams usually buy AG Grid Enterprise for: row grouping, aggregations, pivoting, tree data, master-detail, cell selection and context menus. They come in one package with zero runtime dependencies, free to use with a "Powered by Infinite Table" footer. A license that removes the footer is $395 per developer per year; AG Grid Enterprise is $999 per developer, perpetual, with a year of updates.
In our open benchmark against AG Grid Community with 300,000 and 1,000,000 rows, Infinite Table mounted faster, used about half the memory and sorted 2.3 to 2.7 times faster, with equally smooth scrolling.
When to choose which
Choose AG Grid if
- You need integrated charts, Excel or PDF export, clipboard paste, formulas or tool panels. Infinite Table has none of these.
- You standardize on one grid across Angular, React, Vue and plain JavaScript projects.
- You need documented screen reader support or right-to-left layouts.
- The MIT Community edition covers what you need and you want no footer, free.
- Your team already knows AG Grid well.
Choose Infinite Table if
- You want grouping, aggregations, pivoting, tree data and master-detail without an enterprise license for every developer up front.
- Supply-chain risk matters to you: Infinite Table has zero runtime dependencies.
- You want every piece of grid state (sorting, filtering, grouping, column order and sizes, selection) available as a controlled or uncontrolled prop.
- You work with large client-side datasets: see the benchmark for mount time, memory and sorting.
- You use React and Vue and want the same grid in both.
Features
22 of the 30 features below are built into Infinite Table, every one in the free package. AG Grid has 30 built in, counting its most complete edition (AG Grid Enterprise). Each AG Grid entry links to its documentation.
- Built in
- Partial / with limits
- Logic only (headless)
- Not available
- Pro = needs that paid edition
| Feature | Infinite TableFree with footer · $395 per developer per year | AG Grid CommunityMIT · Free | AG Grid EnterpriseCommercial (EULA) · $999 per developer |
|---|---|---|---|
| Rendering | |||
| Row virtualizationOnly the visible rows are rendered, out of the box. | Yessource | Yessource | Yessource |
| Column virtualizationOnly the visible columns are rendered, out of the box. | Yessource | Yessource | Yessource |
| Columns | |||
| Multi-column sortingBuilt-in sorting UI, including sorting by several columns. | Yessource | Yessource | Yessource |
| Column filtersBuilt-in filter UI: a filter row, header filters or a filter menu. | YesText, number and date filters and a floating filter row in Community; Set, Multi and Advanced filters in Enterprise.source | Yessource | |
| Column resizingUsers drag to resize columns. | Yessource | Yessource | Yessource |
| Column reorderingUsers drag and drop columns to reorder them. | Yessource | Yessource | Yessource |
| Column pinningPin (freeze) columns to the left or right. | Yessource | Yessource | Yessource |
| Column groupsMulti-level, grouped column headers. | Yessource | Yessource | Yessource |
| Column menuA built-in column header menu (sort, hide, pin...). | Yessource | NoIn AG Grid Enterprise | |
| Grouping and analysis | |||
| Row groupingGroup rows by one or more columns, with expand and collapse. | Yessource | NoIn AG Grid Enterprise | Yessource |
| AggregationsAggregated values (sum, average...) for groups or totals. | Yessource | NoIn AG Grid Enterprise | Yessource |
| PivotingPivot rows into dynamically generated columns. | Yessource | NoIn AG Grid Enterprise | Yessource |
| Tree dataHierarchical (tree) rows. | Yessource | NoIn AG Grid Enterprise | Yessource |
| Master-detailExpandable detail rows with custom content or a nested grid. | Yessource | NoIn AG Grid Enterprise | Yessource |
| Server data | |||
| Lazy loadingLoad rows from a server in batches as the user scrolls. | Yessource | YesInfinite Row Model in Community (no grouping); Server-Side Row Model with lazy-loaded groups in Enterprise.source | Yessource |
| Server-side sort, filter and groupBuilt-in support for sorting, filtering and grouping on the server. | PartialCommunity: server-side sorting and filtering through the Infinite Row Model, without grouping.source | ||
| Pagination UIA built-in pager. | Yessource | Yessource | |
| Editing and interaction | |||
| Cell editingInline cell editing with built-in editors. | Yessource | Yessource | |
| Row selectionSelect rows, including checkbox selection. | Yessource | Yessource | Yessource |
| Cell selectionSelect multiple cells or ranges of cells. | Yessource | NoIn AG Grid Enterprise | Yessource |
| Keyboard navigationMove between cells with the keyboard. | Yessource | Yessource | Yessource |
| Context menuA built-in cell or row context menu. | Yessource | NoIn AG Grid Enterprise | Yessource |
| Row drag and dropReorder rows by dragging them. | No | Yessource | Yessource |
| Export and charts | |||
| ClipboardCopy (and paste) cells, built in. | No | NoIn AG Grid Enterprise | Yessource |
| CSV exportBuilt-in export to CSV. | No | Yessource | Yessource |
| Excel exportBuilt-in export to Excel (.xlsx). | No | NoIn AG Grid Enterprise | Yessource |
| Integrated chartsChart grid data from inside the grid. | NoIn AG Grid Enterprise | YesIntegrated charts need AG Grid Enterprise; the full chart range needs the AG Charts Enterprise bundle.source | |
| Styling and accessibility | |||
| Theming with CSS variablesTheme the grid through CSS custom properties or design tokens. | Yessource | Yessource | Yessource |
| 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. | Yessource | Yessource |
| Right-to-leftRight-to-left layout support. | No | Yessource | Yessource |
Side by side
Licensing and pricing
List prices as published by each vendor, in US dollars. Follow the source links for the full terms.
| Edition | License | List price | Conditions | Deployment |
|---|---|---|---|---|
| Infinite Table | Commercial (EULA) | $395 per developer per yearVolume discounts: 5% from 3 developers, 10% from 5, 15% from 10. For 20 or more developers, email us.source | Every 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. |
| AG Grid Community | MIT | Freesource | Free for everyone, including production use. | None (MIT). |
| AG Grid Enterprise | Commercial (EULA) | $999 per developerPerpetual license with 1 year of support and updates. Online purchase covers 1-10 developers on internal applications; volume and renewal discounts through sales.source | Can be tested locally without a license (watermark and console message). Free 30-day trial license. | Applications used by customers or other external users are licensed through sales. All front-end developers on the project need a license. |
| AG Grid Enterprise + AG Charts Enterprise | Commercial (EULA) | $1,498 per developerPerpetual license with 1 year of support and updates. Same licensing rules as AG Grid Enterprise.source | – | – |
Bundle size and dependencies
Every dependency is code you ship and a package you have to trust and keep updated. Infinite Table has none.
| Package | JS, min + gzip | CSS, min + gzip | Runtime dependencies | From other publishers |
|---|---|---|---|---|
| Infinite Table for React@infinite-table/infinite-react@10.1.4 | 145 kB | 5.7 kB | 0 | 0 |
| Infinite Table for Vue@infinite-table/infinite-vue@10.1.4 | 126 kB | 5.4 kB | 0 | 0 |
| AG Grid Communityag-grid-react@36.3.0 + ag-grid-community@36.3.0 | 344 kB | – | 7listag-charts-types@14.3.0, ag-stack@36.3.0, js-tokens@4.0.0, loose-envify@1.4.0, object-assign@4.1.1, prop-types@15.8.1, react-is@16.13.1 | 5 |
| AG Grid Enterpriseag-grid-react@36.3.0 + ag-grid-community@36.3.0 + ag-grid-enterprise@36.3.0 | 775 kB | – | 11listag-charts-community@14.3.0, ag-charts-core@14.3.0, ag-charts-enterprise@14.3.0, ag-charts-locale@14.3.0, ag-charts-types@14.3.0, ag-stack@36.3.0, js-tokens@4.0.0, loose-envify@1.4.0, object-assign@4.1.1, prop-types@15.8.1, react-is@16.13.1 | 5 |
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
| Framework | Infinite Tablesource | AG Gridsource |
|---|---|---|
| React | Yes | Yes |
| Vue | Yes | Yes |
| Angular | No | Yes |
| JavaScript | No | Yes |
- Infinite Table: React 18+ (@infinite-table/infinite-react) and Vue 3.4+ (@infinite-table/infinite-vue), same features and version.
Key differences
Licensing: one package vs Community and Enterprise
AG Grid ships two products. AG Grid Community is MIT-licensed and free in production. AG Grid Enterprise adds the analytical features (grouping, pivoting, tree data, master-detail and more) and needs a license for every front-end developer on the project. Without a key, Enterprise shows a watermark.
Infinite Table is one package with every feature in it. Using it for free means keeping the "Powered by Infinite Table" footer visible. A license removes the footer and adds email support, priced per developer per year, with no deployment, application or SaaS licenses.
Configuration style
AG Grid is configured through grid options and column definitions, and grid state is changed through events and its grid API (for example api.applyColumnState()), with initialState to restore it.
Infinite Table splits the work in two components. <DataSource> owns the data and the data operations: sorting, filtering, grouping, pivoting and lazy loading, locally or on the server. <InfiniteTable> renders it. Each piece of state is a prop with a controlled form (sortInfo, groupBy, columnOrder...) and an uncontrolled one (defaultSortInfo, defaultGroupBy, defaultColumnOrder...), like value and defaultValue on a React input.
Migrating from AG Grid
Both are React components, so you can move one grid at a time. Column definitions map closely. The main changes: columns are an object keyed by column id, and data operations such as sorting and grouping move to <DataSource>.
AG Grid
import { AgGridReact } from 'ag-grid-react';
import { AllCommunityModule, ModuleRegistry } from 'ag-grid-community';
import type { ColDef } from 'ag-grid-community';
ModuleRegistry.registerModules([AllCommunityModule]);
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 columnDefs: ColDef<Car>[] = [
{ field: 'make', headerName: 'Make', sort: 'asc' },
{ field: 'model', headerName: 'Model', width: 200 },
{
field: 'price',
headerName: 'Price',
cellRenderer: (params: { value: number }) => <b>{params.value}</b>,
},
];
export function Cars() {
return (
<div style={{ height: 500 }}>
<AgGridReact<Car>
rowData={data}
columnDefs={columnDefs}
getRowId={(params) => String(params.data.id)}
/>
</div>
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>
| AG Grid | Infinite Table |
|---|---|
columnDefs (an array) | columns (an object keyed by column id) |
field, headerName | field, header |
width, flex | defaultWidth, defaultFlex, or the columnSizing prop |
cellRenderer | renderValue or render |
getRowId | primaryKey on <DataSource> |
sort on a column | defaultSortInfo or sortInfo on <DataSource> |
rowGroup: true (Enterprise) | defaultGroupBy or groupBy on <DataSource> |
pivot: true, aggFunc (Enterprise) | pivotBy and aggregationReducers on <DataSource> |
api.applyColumnState() | columnOrder, columnVisibility and columnSizing props |
| Infinite / Server-Side Row Model datasource | a data function on <DataSource>, with lazyLoad |
What AG Grid does well
- The broadest feature set of any grid here: on top of grouping, pivoting and tree data, Enterprise adds Excel and PDF export, formulas, a fill handle, tool panels and a status bar. source
- Integrated charts: users chart grid data from inside the grid, powered by AG Charts. source
- The Server-Side Row Model hands filtering, sorting, grouping, aggregation and pivoting to the server, and loads group children on expand. source
- A generous MIT Community edition, free in production, with multi-sort, filters, editing, selection, pagination, CSV export, accessibility and RTL. source
- One grid with official React, Angular, Vue and JavaScript versions, each with its own docs. source
- Documented accessibility: ARIA roles and states, tested with JAWS and VoiceOver. source
FAQ
Which AG Grid features need AG Grid Enterprise?
According to AG Grid's documentation, row grouping, aggregation, pivoting, tree data, master-detail, cell range selection, the context menu, the column menu, clipboard, Excel export and integrated charts are Enterprise features. AG Grid Community (MIT) includes sorting, filtering, editing, row selection, pagination, CSV export, row dragging and the Infinite Row Model.
Does Infinite Table have everything AG Grid Enterprise has?
No. Infinite Table doesn't have integrated charts, Excel or CSV export, clipboard copy and paste, row drag and drop, a pager, right-to-left layouts or documented screen reader support. It does include row grouping, aggregations, pivoting, tree data, master-detail, cell selection, context menus, column menus and server-side data loading.
Is Infinite Table faster than AG Grid?
In our open benchmark against AG Grid Community 36.3 at 300,000 and 1,000,000 rows, Infinite Table mounted faster, used about half the memory and sorted 2.3 to 2.7 times faster. Scrolling was equally smooth, with no significant difference in frame rate. The benchmark page has the method, every metric and how to run it yourself.
Can I migrate from AG Grid to Infinite Table one grid at a time?
Yes. Both are regular React components, so they can live in the same app. Column definitions map closely (see the table above). The main changes are that columns are an object keyed by id, and that sorting, filtering, grouping and pivoting are configured on the <DataSource> component.
Does Infinite Table support Angular or plain JavaScript?
No. Infinite Table supports React and Vue 3. AG Grid supports React, Angular, Vue and plain JavaScript.
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 AG Grid have, compared to Infinite Table?
Infinite Table has 0 runtime dependencies: installing it adds one package. AG Grid Community adds 7 (5 from other publishers); AG Grid Enterprise adds 11 (5 from other publishers), counting required peer dependencies but not React. Measured on November 11, 2026 with the latest versions on npm.
How big is AG Grid compared to Infinite Table?
Bundling the minimal getting-started usage with esbuild, minified and gzipped, without React: Infinite Table 145 kB of JavaScript, AG Grid Community 344 kB, AG Grid Enterprise 775 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. AG Grid 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 AG Grid: website, docs, pricing, license, repository.