Licensing models

One platform. Every way to license.

Charge by subscription, one-time, or lifetime, and lock each license to a device or a website. Mix and match for every product you sell.

ModelRecurringSeatDomain
Subscription (recurring)
One-time (perpetual)
Lifetime
Seat-mode (node-locked)
Domain-mode
Model 01

Subscription (recurring)

Customer pays monthly or annually. The license stays active as long as the subscription is current. When payment fails or the customer cancels, the license moves through a grace period and then expires.

Best for: Plugins with ongoing updates, SaaS-style tools, anything with recurring value.

How it works

  1. 1Customer purchases on the buy page (Stripe Checkout)
  2. 2License key issued and emailed automatically
  3. 3Stripe handles renewals, dunning, and payment retries
  4. 4Grace period on failed payments (configurable)
  5. 5License expires when the subscription is canceled or payment is exhausted
Model 02

One-time (perpetual)

Customer pays once and owns the license forever. The key never expires unless you manually deactivate it. Ideal for traditional software purchases.

Best for: Desktop apps, audio plugins, tools sold as a one-time download.

How it works

  1. 1Single charge via Stripe Checkout
  2. 2License key issued with no expiry date
  3. 3Key validates indefinitely unless deactivated
  4. 4Optional: offer paid upgrades as separate products
Model 03

Lifetime

A variant of one-time where the license explicitly has no expiry. Functionally identical, but clearly communicated to the customer as a lifetime deal.

Best for: Launch promotions, AppSumo-style deals, early adopter pricing.

How it works

  1. 1Single charge, license issued with status active and no expiry
  2. 2Validates forever unless manually deactivated
  3. 3Customer appears in your dashboard like any other license holder
Model 04

Seat-mode (node-locked)

Each activation binds to a specific machine identifier. The plan defines a max seat count (for example 3 machines). Once all seats are used, additional machines are blocked until an existing seat is deactivated.

Best for: Desktop apps, audio plugins, development tools, anything installed on a physical machine.

How it works

  1. 1Customer activates with a machine-specific identifier
  2. 2Server tracks active seat count per license
  3. 3Hitting the cap returns activation_cap_exceeded
  4. 4Customer can deactivate old seats from the portal
  5. 5Idempotent: the same machine re-activating does not consume an extra seat
Model 05

Domain-mode

Each activation binds to a domain name instead of a machine. Essential for WordPress plugins, browser extensions, Shopify apps, and anything distributed to run on a customer-controlled URL.

Best for: WordPress and Shopify plugins, browser extensions, SaaS integrations.

How it works

  1. 1Customer activates with an identifier like shop.example.com
  2. 2Server tracks active domain count per license
  3. 3Domain-origin guard: validate checks the Origin header matches an activated domain
  4. 4Even if someone extracts the key, they cannot use it from an unauthorized domain
  5. 5Customer manages domains from the self-serve portal

Ship your product.
Let us forge the keys.

Free tier, no credit card. Connect your payment account and have a live buy page before your coffee gets cold.