// the find
revolist/revogrid
Powerful virtual data table smartsheet with advanced customization. Best features from excel plus incredible performance 🔋
RevoGrid is a StencilJS-based web component data grid targeting Excel-like use cases: virtual scrolling over millions of rows, range selection, copy/paste from spreadsheets, and a plugin system for sorting/filtering/grouping. It compiles to framework-specific wrappers for React, Angular, Vue 2/3, and Svelte, so you get native bindings without a separate adapter layer. The target user is a frontend team building internal tools or data-heavy apps that need a spreadsheet feel without paying for AG Grid Enterprise.
Built on StencilJS means the core is a real custom element — the framework packages are auto-generated wrappers, not separate implementations, so behavior is consistent across React/Angular/Vue. Virtualization is row and column both, which matters; most open-source grids only virtualize rows. The plugin API gives you actual access to grid internals (stores, providers), not just callback hooks — you can build non-trivial extensions without forking. The E2E suite uses Playwright against a real browser with a dev server, so rendering and interaction bugs that jsdom would miss get caught.
The Pro feature wall is aggressive: pivot tables, Gantt, formula engine, Excel import/export, server-side grouping, and most advanced filtering are all behind a paid license. For a free alternative to AG Grid, you hit the ceiling fast. Breaking changes between v3 and v4 renamed event names (camelCase → lowercase), changed type import paths, and altered several event payloads — the migration surface is real and the changelog is thin. Being built on StencilJS is a double-edged sword: the build pipeline (Stencil + per-framework CD scripts) adds complexity that can bite you when something breaks in a framework wrapper, and StencilJS itself has a smaller community than React or Vue to lean on for troubleshooting. The free tier also lacks server-side sorting/filtering/pagination, which rules it out for any dataset that doesn't fit in the browser.