Project status & compatibility
Version, changelog discipline, browser and framework support, and how to update installed code.
Version
gridcn is at 1.0.0. A breaking change to a public prop, hook, export, or behavior waits for the next major version. Minor and patch versions add features and fix bugs without breaking an existing install. Each breaking change is marked Breaking in the changelog and names the exact replacement.
The registry has no npm semver. A release is a git tag. The hosted registry serves the current
source with npx shadcn add @gridcn/data-grid. To pin a release, run
npx shadcn add DammersCode/gridcn/data-grid#v1.0.0. The
installation guide explains the pinning rules.
What 1.0 promises
- The props, hooks, and exports that the docs name are the public API. The
data-grid-sdkmodule is the API for add-on authors and follows the same rule. - Each release lists its breaking changes in the changelog, grouped by area, with the replacement for each.
- Installed files are your source. The
shadcnCLI shows a diff and asks before it overwrites a file you edited.
It does not promise Firefox or Safari automation, a screen-reader pass, or a WCAG conformance level. The browser support and accessibility pages say what is tested.
Changelog
Every notable change lives in
CHANGELOG.md at the root
of the repository, grouped under Added, Changed, and Fixed. A Changed entry that breaks a
public prop or hook is marked Breaking and states the exact replacement. Each release opens
with an Upgrading section that groups its breaking changes by area. Read it before you
upgrade installed files, and check it again after every npx shadcn add re-run.
Browser support
Built and tested on evergreen browsers
gridcn targets evergreen Chromium, Firefox, and Safari. The regression suite runs real Chromium through Playwright. Firefox and Safari are not in the automated suite, so no gate covers them. Test your own flows in each engine you ship to.
Known engine-specific caveats, found in source and tests:
| Area | Caveat |
|---|---|
| Clipboard paste | navigator.clipboard.readText() needs the clipboard-read permission. Chromium grants it after a user gesture. Other engines can prompt or deny it. When the read rejects, gridcn falls back to a "press Ctrl+V" hint instead of failing silently. |
| Clipboard copy | Copy uses the async Clipboard API (navigator.clipboard.write with ClipboardItem) when available, and falls back to document.execCommand("copy") in environments without it. |
| Row count ceiling | The hard ceiling of about 1M rows is a Chromium CSS Grid track limit, not a gridcn limit. See Performance. |
| Pointer capture | Column resize, column reorder, and the fill handle use setPointerCapture/releasePointerCapture, standard in every evergreen engine. No fallback exists for engines without it. |
Run the benchmarks yourself
The regression suite (blank-area checks, an FPS gate, a wasted-render probe) is the real trust asset behind these claims. See the Benchmarking section in the repository's DEVELOPMENT.md to run it yourself.
Framework floors
| Requirement | Floor | Why |
|---|---|---|
| React | 19 | Hard dependency, not a tested baseline. gridcn's store reads context through React's use() API (use(DataGridStoreContext), use(DataGridRootContext)), which does not exist in React 18. |
| Tailwind | v4 | gridcn's tokens and utility classes assume the v4 engine and its @theme syntax. |
| TypeScript | 5.9 | Every shipped example installs, type-checks, and builds in a fresh Next.js app on TypeScript 5.9. TypeScript 6 and 7 work too. |
| Node.js | 20.9 or later | This is Next.js 16's floor, inherited by the docs site and by any project running the shadcn CLI through npx. gridcn itself has no separate Node requirement. |
React Compiler
gridcn is tested with the React Compiler (babel-plugin-react-compiler 1.0.0): every component
compiles, and the full unit and browser suites pass against compiled output with no behavior
change. A dedicated compiled test run guards this compatibility in CI.
The compiler is not what runs continuously during gridcn's own development. Day-to-day work
happens against uncompiled output. A compiler-specific issue can therefore surface later than a
regular bug. If you hit one, report it with reactCompiler in the title.
Updating installed code
Your installed files are ordinary source, so "updating" means pulling upstream changes into files you can have already edited:
Full re-install. Re-run the install command for the item:
pnpm dlx shadcn@latest add @gridcn/data-grid
Preview first. --dry-run prints a per-file status list (identical, changed, new) without
writing anything:
pnpm dlx shadcn add @gridcn/data-grid --dry-run
Diff one file. --diff <path> prints a unified diff between your local copy and upstream:
pnpm dlx shadcn add @gridcn/data-grid --diff src/components/data-grid/data-grid.tsx
For heavily edited files, install the item into a scratch branch and diff the two trees with
git diff --no-index.
Support & security
File bugs, feature requests, and questions in the project repository's issue tracker.
To report a security vulnerability, open a
private security advisory
instead of a public issue, so a fix can ship before the details become public. Version 1.x
receives security fixes. SECURITY.md
has the scope and the response time.
See Accessibility for the test status matrix and the checks still pending.