Large datasets
01Open-source React Data Grid for business applications
Beautiful. Powerful.
Naturally React.
From large-scale virtualization to essential business data features.An open-source React Data Grid for building complex business UIs quickly and flexibly.
Install and start building in minutes.
npm i beautiful-gridApache-2.0 open source · Verify every feature with runnable examples and real source.
Verified benchmarks for production
Bundle size
02Initial JS + CSS gzip total
Performance
03Measure scrolling and first paint together
1440×1000 · 72 rows · median of 5 scrolls · mount from current loadFeature breadth
04Runnable feature guides
Explore everything from editing to aggregation through real examples and source code.Why Choose BeautifulGrid
Why BeautifulGrid?
Proven performance and rich business features, freely available as an open-source solution.
Apache-2.0
An open-source license you can use freely without feature restrictions
Built for React
Designed to fit naturally into React and TypeScript projects
Built for large data
Virtual scrolling keeps large datasets smooth and responsive
Business-ready features
Business-ready editing, merge, filter, summary, pivot, frozen columns, and more
Core Features & Highlights
Four Core Experiences
Common grid problems are organized into four workflows—large-scale exploration, cell editing, query and selection, and structured aggregation—with runnable examples.
Explore 1M rows while rendering only what the screen needs.
Virtual scrolling renders only visible rows while frozen columns keep reference data in view. Explore wide, long datasets smoothly across screen sizes.
Edit and save in place, then move directly to the next cell.
Use built-in text and checkbox editors, date and select plugins, or connect Ant Design components. Validation and keyboard movement stay in one flow.
Find records with sort and filter, then pass selected rows into the next task.
Sort by multiple conditions and filter values, text, or numbers. Process search and selection locally or pass the query to a server.
Group repeated values and aggregate numbers into readable results.
Reveal structure with column groups and merged cells, then collect key figures with summary rows and pivots. Adjust layout and color to your workflow.
Virtual Scroll Optimization
Render Only Visible Cells
A dataset with 1M rows and 24 columns contains 24 million cells. BeautifulGrid does not render them at once; it displays roughly the 20 × 12 cells currently visible.
This illustrates how cells are rendered; it is not a benchmark. Actual performance varies with cell composition and browser environment.
1M rows × 24 columns
Only cells needed inside the rectangular viewport are rendered.
Features you can run
Interactive Guides & Examples
Operate the real grid and inspect its source side by side. Start with the workflow you need and connect it directly to your project.
View all 41 runnable guidesLarge-scale exploration
1M-row business dataset
Virtual-scroll from the first row through 1M rows at the default row height.Cell editing
Built-in editors
Run text, Select, and Date editing with save, cancel, and move rules inside each cell.UI integration
Ant Design editor plugins
Connect Select, TreeSelect, Cascader, DatePicker, and your existing UI system to cell editors.Query controls
Sort & filter toolbox
Control multi-sort and value, text, and numeric filters through one query.Merged editing
Merged-cell editing
Preview and save changes across a merged range as one transaction.Aggregation
Pivot and Summary
Group repeated rows and present custom aggregates in a readable structure.Row selection
Selection and batch actions
Control single and multi-select states, then pass selected rows into the next workflow.Data exploration
Frozen columns and horizontal exploration
Keep key columns frozen while exploring and comparing wide business data horizontally.3-Step Guide
Installation & Quick Start
Install the package, import the base CSS, and connect columns and row data to complete your first grid.
View the full installation guide$ npm i beautiful-gridimport 'beautiful-grid/style.css';
// Your application entry
createRoot(document.getElementById('root')!).render(<App />);import { BGrid, type BGridColumn } from 'beautiful-grid';
type Order = { id: number; customer: string };
const columns: BGridColumn<Order>[] = [
{ key: 'id', label: 'ID', width: 80 },
{ key: 'customer', label: 'Customer', width: 180 },
];
const rows = [{ values: { id: 1, customer: 'AXISJ' } }];
<BGrid width={640} height={360} columns={columns} data={rows} rowKey="id" />AI-ready by design
Built for developers. Easy for AI to understand.
A clear TypeScript API, task-focused runnable examples, and public documentation all share the same concepts and names. Coding agents can find the context they need and produce reviewable code without depending on a particular tool.
Merge cells by department and add a total row at the bottom.
const merge = {
columnsMap: {
0: { mergeBy: 'department' },
},
};
<BGrid
columns={columns}
data={rows}
cellMergeOptions={merge}
summary={summary}
/>Evaluation Checklist
Supported Environments & License
BeautifulGrid publishes its React, Node.js, and browser baseline. The Apache-2.0 license and complete source let you verify how the grid can be operated and extended after adoption.
React ^19.2.0 · Node.js 24.x
A client component mounted in the browser.
Validate each screen against current stable Chrome, Edge, Safari, and Firefox.
Individuals and companies may use, modify, and distribute it commercially under the license terms.
Inspect the TypeScript source, issues, and change history on GitHub, then extend it for your project.
Open Source
Like BeautifulGrid?
If BeautifulGrid is useful for your project, consider giving us a star on GitHub. It helps the project grow.