Skip to content

v2.5 • UI • 11kb gzipped • MIT

PulseGrid

Headless data table with sorting and virtual scroll that stays smooth at a hundred thousand rows.

★ 7.3kGitHub
↓ 23.3k / week● MIT● TS 5.0+
pulsegrid-preview.png
Abstract preview graphic for PulseGrid

// why pulsegrid

A hundred thousand rows

Virtualisation is measured, not guessed. Row heights can vary and the scrollbar still lands exactly where the user expects.

● 5ms render● 60fps● 0 deps

// stack

Bring your own markup

PulseGrid computes what should be visible. Rendering is entirely yours, so the table matches the rest of your product.

PulseGrid started as a single file in a client project and stayed small on purpose. It does one job, it does it in 11kb gzipped, and it has no runtime dependencies.

Getting started

Install it, import it, call it:

npm i pulsegrid-js

Virtualisation is measured, not guessed. Row heights can vary and the scrollbar still lands exactly where the user expects.

What it does not do

It does not manage your state, style your components or ship a plugin system. Those are your decisions, and keeping them out is what keeps the bundle honest.

  • Variable row heights
  • Full keyboard grid
  • MIT licensed, commercially friendly

Features

Variable row heights

Measured on the fly and cached, so mixed content does not break scroll position.

Full keyboard grid

Arrow keys, Home, End, Page Up and Page Down all behave the way a spreadsheet user expects.

Container aware

Adapts to the box it is given rather than the viewport, so it works in a sidebar.

Accessibility audited

Tested against screen readers on three platforms, with the findings published in the repository.

ESM and types

Ships module and CommonJS builds with hand-written type definitions and source maps.

Styling stays yours

PulseGrid sets no colours and no spacing. Every visual decision belongs to your design system.

Get PulseGrid v2.5

10 files • .min.js 11kb • .zip 84kb • sha384 verified

Changelog

v2.5 Jul 28 2026 • latest
  • Variable row height measurement
  • Keyboard grid navigation complete
  • Sort comparators now stable
v2.4.4 May 1 2026
  • Fixed a memory leak on repeated teardown
  • Source maps now published with every build
v2.4.3 Mar 2 2026
  • Type definitions rewritten by hand
  • Dropped the last runtime dependency
View full archive →

// related

Related products

Jul 06 • v1.4

ToastKit

Accessible toast notifications in two kilobytes, with a queue that never talks over itself.

View →
Jun 25 • v2.1

DialogJS

Focus-trapped dialogs built on the native element, with the edge cases already handled.

View →
Jun 14 • v1.7

MenuForge

Keyboard-complete menus and menubars that follow the authoring practices to the letter.

View →

Ship the interface today.

MIT licensed. Commercial friendly. Five-minute setup.