Source available, with an offline license
The code is published under the PolyForm Noncommercial License 1.0.0: free for personal, educational, research and nonprofit stores. A store that takes money buys a yearly commercial license in one of four tiers. The check is a signed file the engine verifies itself. No license server, no activation call, no telemetry.
How it works
The file is offline by construction. It is a JSON document with two keys: the claims (licensee, tier, number of stores, the domains it is bound to, the issue and expiry dates) and an Ed25519 signature over them. The engine carries the matching public key in its build and verifies the file at install and at every boot. Nothing in the file is secret, so it can be backed up and committed to a private repository. What it cannot be is edited: a changed claim breaks the signature.
{
"claims": {
"id": "lic-0001",
"licensee": "Example Agency",
"plan": "studio",
"storeCap": 5,
"domains": ["shop.example", "second-shop.example"],
"issuedAt": "2026-09-09T00:00:00.000Z",
"expiresAt": "2027-09-09T00:00:00.000Z"
},
"signature": "<Ed25519 signature over the claims, base64>"
} Every server install needs one, including a free store. The API refuses to start in production without a license file. Noncommercial stores get a thirty-day evaluation license, free, bound to one domain, renewed the same way. A local install is different: a missing file is reported in the admin and nothing refuses to start.
Commercial is defined by taking money, not by company size. A store is commercial from the moment it accepts an order from a customer for money, by any tender: card, cash on delivery, bank transfer or gift card. The four tiers are priced by the number of paid stores running at the same time: Single, Studio up to five, Agency up to twenty, and Unlimited. Every tier gets the same software and the same updates for the licensed year.
Expiry is a banner, not a cut. Thirty days before the expiry date the admin shows the days left. For thirty days after it, a stronger banner. After that, a permanent one. Settings, catalogue edits, orders, payments and customer accounts keep working in every one of those states. What a lapsed commercial license loses is updates: the release you run at expiry is yours to keep running, and installing a newer release needs a current license.
Domain binding is by hostname. The claims list bare hostnames, an apex covers its subdomains, and a
* entry covers every host. The installer checks the binding twice, once when you hand it the file and
again after you enter the three origins.
Where to read the detail
- Get a license: what the file is, how to get one, domain binding and every expiry state.
- License renewal: renewing and replacing the file on a running store.
- Pricing: the four tiers and what each one covers.
Questions
Is this open source?
It is source available. The code is published under the PolyForm Noncommercial License 1.0.0: personal, educational, research and nonprofit use is free. A store that takes money needs a commercial license. That is not an OSI open-source license and the page does not call it one.
Why does a free store still need a license file?
Because the production boot checks for one. The publisher issues a thirty-day evaluation license, free, bound to one domain, and it renews the same way. On a local install the file is optional.
Does the engine phone home?
No. There is no license server, no activation call and no telemetry. The file is a JSON document with an Ed25519 signature over its claims, and the engine carries the matching public key in its build.
What makes a store commercial?
Accepting an order from a customer for money, by any tender. A staging copy, a demo with test orders only, or a catalogue with no checkout is not a paid store.
What happens when a license expires?
Nothing stops. Thirty days before expiry the admin shows a banner, then a stronger one during the thirty-day grace period, then a permanent one. Settings, catalogue, orders, payments and customer accounts keep working throughout.
So what does a lapsed license actually lose?
Updates. The release you run at expiry is yours to keep running; installing a newer release needs a current license. Today that is a term of the agreement rather than a check in the software.
Can I move a store to a new domain?
Yes. The license binds bare hostnames and an apex covers its subdomains. A re-issued file for a new domain is free within the licensed year.
Last updated . Every claim on this page is read from a published source and cited beside it.