Skip to content

License & updates

Buyers purchase a license to use the template, not ownership. Tiers differ in seats, themes, and update windows — never in projects (unlimited on all tiers).

PlanPriceSeatsThemesUpdates
Solo$129 one-time1any 31 year
Team & Studio$249 one-timeup to 5any 10lifetime
Agency$399 one-timeunlimitedall, present and futurelifetime

Internal tier ids in the code and database stay stable regardless of the public names: Solo = starter, Team & Studio = pro, Agency = pro_plus.

Updates arrive via the private GitHub repo — pull to receive. Solo covers one year from purchase; Team & Studio and Agency are lifetime, so their windows never close. After a Solo window closes, the buyer keeps everything already downloaded; new versions stop and repo access is removed until they extend.

$49/yr updates extension applies to Solo licenses. Recurring add-on, same webhook flow. Team & Studio and Agency need no extension.

Tier moves (Solo→Team & Studio, Solo→Agency, Team & Studio→Agency) pay the difference only, applied instantly to the existing license and repo access. See Payments for the difference-product mechanism.

licenses.updates_until is the source of truth (YYYY-MM-DD or lifetime) and is written at fulfillment.

What actually happens, precisely:

  • Payment writes the orders and licenses rows and emails a license key.
  • The key is a real credential with a checkable status. POST /api/license/verify with { "key": "…" } returns active, expired, or 404 — see Payments for the response shape. npm run license:verify calls it and writes .startplate/license.json; it exits 1 on expired so CI can gate on it.
  • Expiry is evaluated at verification time, not by a scheduled job. A Solo license stops verifying the day its window closes with nothing having to run. There is no cron in this project and none is needed.
  • Delivery of the private repo is still manual — you add the buyer after payment. Verification is how you and the buyer confirm entitlement; GitHub membership is what actually grants it.
  • Nothing in your running app phones home. The template never blocks a request based on a license, so local development and offline work are unaffected.