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

Zero Dependencies — Lightweight — Everything Included

GP-Grid has 0 external dependencies. The entire library is self-contained — no transitive dependency chains, no supply-chain risk, no version conflicts. What you install is what you get.

It's also significantly smaller than alternatives, and every feature ships for free:

LibraryReactJS Bundle Size CORE + WRAPPERS (minify + gzip)DependenciesFeature GatingLicense
GP-Grid31 kB0None — all features includedApache 2.0
AG-Grid479 kB0Enterprise license required for advanced features (row grouping, pivoting, charts, etc.)MIT / Commercial
Handsontable335 kB+MultipleCommercial license required for most featuresCommercial

No bloat. No dependencies. No paywalled modules. No enterprise traps. Just what you need — all of it.

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

  • Column Dragging - Reorder columns by dragging headers
  • Row Dragging - Reorder rows with drag handle or entire row mode
  • Column Resizing - Drag header edges with min/max constraints
  • 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 — No Enterprise Traps

GP-Grid is Apache 2.0 licensed and community driven. Every feature is included for free — no enterprise tiers, no feature gating, no paywalled modules. Column dragging, row reordering, filtering, editing — it's all included out of the box.

Get Started

On this page