gp-grid-logo

Why GP-Grid

Why choose GP-Grid for your data grid needs

Why GP-Grid?

GP-Grid is designed from the ground up for performance, simplicity, and developer experience with no feature gating.

Performance First

Virtual Scrolling That Actually Works

Most grids claim virtual scrolling, but struggle with millions of rows. GP-Grid uses a unique slot-based architecture that maintains consistent 60fps performance regardless of dataset size.

See our detailed benchmarks comparing GP-Grid against other popular grid libraries.

How It Works

Instead of creating and destroying DOM nodes as you scroll, GP-Grid recycles a fixed pool of "slots". This means:

  • Constant memory usage - No matter how many rows you have
  • No garbage collection pauses - DOM nodes are reused, not discarded
  • Smooth scrolling - No jank from element creation

TypeScript Native

GP-Grid is written entirely in TypeScript with modern tooling (tsdown, rolldown, etc) and strict type checking. You get:

  • Full type inference for your data
  • Autocomplete for all props and methods
  • Compile-time error checking
  • No @types packages needed
interface User {
  id: number;
  name: string;
  email: string;
}

// Full type safety
const columns: ColumnDefinition[] = [
  { field: "id", cellDataType: "number", width: 80 },
  { field: "name", cellDataType: "text", width: 200 },
  { field: "email", cellDataType: "text", width: 250 },
];

// TypeScript knows your data shape
<Grid<User> columns={columns} rowData={users} rowHeight={36} />

Framework Agnostic Core

The core logic is completely separated from UI rendering. This means:

  • Consistent behavior across React and Vue
  • Easy to add new frameworks - The adapter layer is thin
  • Battle-tested core - One codebase, multiple implementations

Lightweight

GP-Grid is significantly smaller than alternatives:

LibraryReactJS Bundle Size (gzip)
GP-Grid~90 kB
AG-Grid~21 MB+
Handsontable~434 kB+

No bloat. No unused features. Just what you need.

Simple API

No complex configuration objects. No steep learning curve.

// That's it. A working grid.
<Grid
  columns={columns}
  rowData={data}
  rowHeight={36}
/>

Compare this to competitors that require pages of configuration.

Features When You Need Them

  • Sorting - Click headers, hold Shift for multi-sort
  • Filtering - Built-in filter popup with operators
  • Selection - Cell, range, and multi-select
  • Editing - Inline editing with fill handle
  • Keyboard - Full keyboard navigation
  • Dark mode - One prop to toggle

Open Source

GP-Grid is Apache 2.0 licensed and free for commercial use. No enterprise tiers, no feature gating.

Get Started

On this page