DEV Community

KanuniLabs
KanuniLabs

Posted on AI-assisted

What "free" means when a data grid also sells a paid edition

Plenty of data grid libraries with a paid edition also have a free one, and the word "free" on their homepages covers several different deals. The license field in package.json does not settle it either. Ours says SEE LICENSE IN LICENSE, which tells you nothing until you open the file.

We sell a grid, so we have a stake in this. I'll use our own licence as the worked example throughout, including the part where we got it wrong in public.

Three things "free" can mean

Open source. MIT, Apache-2.0 and similar. You can read the code, change it, fork it and ship it inside your own library. When a vendor with an open source grid also sells features, those features normally live in a separate package under a separate, commercial licence. The free package stays open source; the paid one does not.

Free of charge, but proprietary. No payment and no key, but the code is not yours to modify or redistribute on its own terms. Whether commercial use is allowed depends entirely on the licence text, and it varies. Our Community packages are this kind. The grant section says you may:

(a) install and use the Software as a dependency of your applications, including commercial applications; and
(b) reproduce and distribute the Software solely as an incorporated, compiled part of such applications.

So a commercial SaaS app is fine. The restrictions section is where people should slow down. You may not modify it, and you may not distribute it "on its own, or as part of any toolkit, component, library, or product that competes with KanuniLabs products". If you are building a UI kit to sell, our free licence does not cover you, and I would rather you learn that from this post than from an email.

Free to evaluate. All the features, but not licensed for production. The usual signals are a watermark, a console message or a time limit. Some vendors let the evaluation build keep working indefinitely with the watermark in place. Our paid package does exactly that when it has no key. It is easy to mistake for a free tier, but the licence does not cover shipping it that way.

What paid editions usually charge for

Once you look past the marketing pages, paid editions tend to draw their line along a few axes, often more than one at a time.

  • Features. Editing, Excel export, server-side data, charts and pivoting are common candidates. Sorting, filtering and virtual scrolling are nearly always in the free tier.
  • Seats. Priced per developer who writes code against the grid, not per end user. Check whether "developer" includes the person who only fixes a CSS bug once a year.
  • Deployment. Some licences count applications, domains or production deployments. "Unlimited apps" and "one key per domain" can both be true of the same product, so read the definitions.
  • Updates. A perpetual licence usually means you keep the version you bought and get updates for a fixed window. A subscription usually means the licence ends when you stop paying. What happens at that point matters more than the word used.

That last point deserves an actual test before you sign anything. Ask what your users see if the key is missing or expired. If the component throws, your app's uptime is now tied to your billing. If it renders with a watermark, the failure is ugly but survivable. We wrote about why our keys are verified offline in an earlier post, so I won't repeat it here.

Where our line is

For completeness, here is the whole deal, because a post like this is useless if the author stays vague about their own product.

  • Community is free on npm, needs no key and shows no watermark. It covers 98 of the 136 features across our two components (50 of 82 in DataGrid, 48 of 54 in PivotGrid). Commercial use is allowed under the terms above.
  • The paid edition adds editing with validation and undo, range selection and fill handle, master-detail and tree data, server-side data, a chart panel, and styled Excel and PDF export. It is a separate package on a private registry, not on public npm.
  • Without a key the paid package still runs. It shows a watermark instead of breaking, because you cannot evaluate a feature you cannot run.
  • With a key the watermark is gone. One key covers both components.
  • Prices are $19 a month or $185 a year for one developer, and $79 a month or $699 a year for up to five. If a subscription ends, what you have shipped keeps running without a watermark: the key covers every version released while you were paying. New versions and support stop.

The mistake on our pricing page

In August an outside audit of our site found that the Community card on our pricing page listed "Excel & PDF export" for DataGrid. The free package does not have that. If you call exportToExcel on the Community grid, you get:

[datagrid] Excel export is an Enterprise feature. Import EnterpriseDataGrid
from @kanunilabs/datagrid-react-enterprise (CSV export is available in Community).
Enter fullscreen mode Exit fullscreen mode

Nobody did this on purpose. The feature list in the code and the bullet points on the pricing page were written in two different places, and they drifted. A developer who installed the free package because of that bullet would have been right to feel misled.

The fix was partly editing the card and partly making the build fail the next time it happens. A check now reads our feature inventory and refuses to build if any free-tier bullet names a paid feature. It is deliberately narrow: it only looks for names that can mean nothing else, like "range selection" or "master-detail", because a check that fires on innocent sentences gets turned off within a week.

If you are evaluating a grid, ours or anyone's, install the free package and call the feature you are planning around before you commit to it. It takes five minutes. We wrote up the checks we would run in a separate post.


Disclosure: this article was drafted with AI assistance and checked against our code, licence text and pricing by the KanuniLabs team. The numbers are from the repository as of September 2026.

Top comments (0)