
A vacuum never stays empty for long. We said good riddance to a CMS and built our own tools instead.
We rebuilt handsontable.com on Astro and Cloudflare with no CMS: what we skipped, what we built instead, and two internal tools that came out of it.

We rebuilt handsontable.com on Astro and Cloudflare with no CMS: what we skipped, what we built instead, and two internal tools that came out of it.

A public Docs MCP server, Claude Code skills, Ask AI in the docs, an AI tab in the Theme Builder and a coding assistant in the demo runner: who each is for.

A browser fleet from an xAI netblock crawled our docs overnight and found the AI chat. Why the rate limiter never fired, and why we deflected, not blocked.

As of Handsontable 18.1.1 the core handles the shadow boundary itself — mouse, focus and clipboard events resolve through shadow roots, with no wrapper.

A benchmark said we ran out of memory at 500,000 rows. Three weeks and 31 pull requests later, one million rows render with the lowest heap in the test.

Why we built demos.handsontable.com, how a two-tier runtime works behind a single adapter, and everything that broke along the way.

Shadow DOM support including Salesforce Lightning, up to 10x less memory on large data sets, new selection gestures, and a playground for every docs example.

HyperFormula 3.4.0 ships an official coding-agent skill, agent-ready docs and five new functions: XIRR, SORT, UNIQUE, VSTACK and HSTACK.

Handsontable 18.0.0 moves the core to TypeScript, rewrites the rendering engine for lower memory use, drops four dependencies and adds a layout system.

How we moved Handsontable’s 342,000-line codebase from JavaScript to TypeScript after years of postponing it, without changing a single end-to-end test.
Let’s make it easier.
Smoother. Faster. All Handsontable.