licence
Software Licence: Per Domain, Unlimited Developers
Last updated 20 August 2026
A grid on localhost needs no key. On any other domain an unlicensed grid still renders everything and carries a small trial watermark. Nothing ever refuses to render.
One product
There is one Lattice Grid, and it is the complete one. No feature is held back for a bigger licence and there is no cut-down edition to outgrow, so what you evaluate on your laptop is exactly what you deploy.
That includes remote and streaming sources, grouping, aggregation and pivot, computed columns with dependency tracking, tree data and master detail, Excel export and clipboard ranges, saved views, undo across the whole grid, column permissions and audit mode.
Where a key is needed
| Where | What you get |
|---|---|
| localhost | Everything, no key needed, no watermark, no time limit. Development is free. |
| Any other domain, no valid key | Everything renders, with a small trial watermark linking back here, and one console warning. |
| Any domain named by a valid key | Everything, no watermark. |
The deliberate choice here is that nothing ever refuses to render. A licence that expires in the middle of a customer's shift should remind whoever bought it, not break the screen someone is working on.
Staging, preview, QA and CI hosts fall under the same rule: they render the full grid with a trial watermark and need no key. Licence one of those hostnames only when you want the watermark gone.
A key also carries a terms marker: 'commercial'
by default, or 'non-commercial' for the
free tier. grid.licence.info().terms
reads it back, for a host that wants to show which terms a key was
issued under. The marker is reported, not enforced by the software
itself; what a key may be used for is set by the licence terms you
agree to, the same as any other term of the licence.
Non-commercial use
Non-commercial use is a personal project, learning the grid or teaching it, research, an open-source project that is not itself a commercial product or service, and evaluation, by an individual. It is not a business's own product or internal tool, and not work done for a client; both of those are commercial use. It is also not use by an organisation of any kind, including charities, not-for-profit organisations and government bodies, whatever the purpose; an organisation's use is licensed on the pricing page instead.
A free, non-commercial key names one domain and runs for six months from the day it is issued. It can be renewed for free from 30 days before it expires, for as long as the project stays non-commercial, and there is no support SLA attached to it. If a key's use stops being non-commercial, that use falls outside the terms it was issued under, the same as any other term of the licence; moving to a paid licence at that point does not change how the key is installed, since a paid key uses the same format. Get a free key →
Per domain, not per developer
A licence covers the domains it names, with no limit on how many people work on what runs there. Employees, contractors, agency developers and build agents are all covered, because the licence is attached to the hostname rather than to a headcount.
That means no seat counting, no audit conversation, and no procurement exercise every time the team grows. See the pricing page for what a domain costs and what counts as one.
Yours to keep
A licence includes a year of updates and support, and your right to run the versions you receive during that year is perpetual. When the year is up, whatever you have deployed keeps running and stays clear of the watermark on its licensed domains. Renew when you want another year of updates and support, not to keep what you already ship running.
Installing a key
Call setLicence once, before you create a grid.
LatticeGrid.setLicence('LG1.eyJ2IjoxLCJwIjoi…'); // setLicense also works
grid.licence.state(); // 'licensed' | 'localhost' | 'trial'
A key is verified offline. There is no licence server and no call home: the grid checks the key in the browser and gets on with it, so nothing about your deployment reaches us and there is no service that can be down when you need to ship.
A key names the domains it covers. A wildcard is one of the forms a name
can take, so *.acme.com matches app.acme.com,
a.b.acme.com and acme.com itself. It is priced
differently from a named domain, because it covers subdomains that do not
exist yet; the pricing page has both figures.
What you may not do
Lattice Grid may not be redistributed as a standalone product, resold, or taken apart to build a competing grid. Using it as a component inside your own application is exactly what it is for, including applications you sell.
Getting a key
Buy a licence Name your domains, pay, and the key is emailed to you.
Keys are issued for the domains you name when you buy. If you need one reissued, a domain corrected, or a domain added to an existing key, get in touch and we will sort it out. Getting a hostname wrong at checkout is not something you have to pay twice for.
This page is a plain-language summary. The binding contract is the Licence agreement you accept at checkout, shown in full on the buy page; where this summary and that agreement ever differ, the Licence agreement governs. The terms of service cover your use of this website.