All docs
Plans & licensing
Price a paid package: one-time or subscription plans, concurrent seats bought by quantity, offline leases, and sealed/source/server delivery.
A paid package is sold through one or more plans. A plan sets how the buyer pays, how many people can use it at once, and how the code is delivered.
One-time vs subscription#
Every plan is one of two kinds:
- One-time (perpetual) — a single purchase that never expires.
- Subscription — a recurring charge over a period; access lapses if it isn't renewed.
A package can offer both — for example a perpetual plan and a monthly subscription — and the buyer picks one at checkout.
Concurrent seats#
A plan grants a number of concurrent seats. A seat is one live device using the package at the same time — not a named user, and not a total install count. A 3-seat plan lets up to three connected devices run the package concurrently; the host enforces the limit live (see Collaboration & seats). A seat count of 0 means unlimited.
Buying seats by quantity#
At checkout the buyer chooses a seat quantity, and the price scales with it:
# → total = plan price × N users
# → a 1-seat plan bought ×3 → entitles 3 concurrent seats
Re-buying at a higher quantity upgrades the entitlement.
Offline leases#
Activating a paid package issues a signed lease valid for 30 days. While the lease verifies, the package runs offline — no per-run server call. The lease is checked against a cached copy of the store's signing keys, must match the device it was issued to, and is guarded against clock roll-back (a high-water-mark of the newest server time seen). When the lease expires, the client re-activates; a revoked entitlement or a lapsed subscription then fails and the package freezes — so changes bite within the lease window without any always-on connection.
Delivery: sealed, source, or server#
Each plan picks how the code reaches the buyer:
| Delivery | What ships | Protection |
|---|---|---|
| sealed | Encrypted .lsdpkg bytecode, device-keyed |
Strong deterrent (locally-run code is decompilable) |
| source | Readable source, on purpose | None — for open or trusted packages |
| server | Nothing sensitive; the code runs on the store's servers | The only true anti-theft — crown-jewel logic never ships |
Choose server delivery when the package's logic must never leave your control; the buyer's steps call your server and only results come back. Otherwise sealed is the common default for paid packages, and source for packages you are happy to ship openly.
Related#
Learn — Publish to the store · Buy & install · Collaboration & seats
API — lsd_package.json · PackageManager
Examples — A complete package
Frequently asked questions
What is a seat?
A seat is one live device using the package at the same time. A plan with 3 seats lets up to three connected devices run it concurrently; a fourth device makes the host freeze the package until one disconnects. Seats of 0 mean unlimited.
Does a paid package need the internet to run?
Not continuously. Activation issues a signed lease valid for 30 days, so sealed and source packages run offline within that window. A revoked entitlement or a lapsed subscription bites within the lease period. Server-delivery packages do need the server, by design.