Back to Docs
Recipe

Free Trial Design Patterns

Proven architectures for converting window shoppers into paying customers without giving away the farm.

Time-Locked Access

Issue a cryptographically signed license with a hard expiry. The loader validates the signature and compares the current wall clock against the embedded deadline. No server ping required after initial activation — works offline, resists clock rollback via monotonic fallback checks.

{
  "sub": "trial_user_7a3f",
  "iat": 1717200000,
  "exp": 1717804800,
  "features": ["core", "export"],
  "sig": "ed25519_hex..."
}

Feature-Gated Trials

Ship the full binary but toggle premium features via a signed capabilities bitmap. The trial license omits high-value flags. When the user upgrades, issue a new license with additional bits set — no reinstall, no second download. The loader re-reads the license on each cold start.

Usage-Capped Trials

Track consumption client-side in an HMAC-signed counter file. Each operation decrements the budget. When the counter hits zero, the loader refuses further work. The HMAC prevents tampering; resetting the file invalidates the signature. Pair with a server-side heartbeat for high-assurance enforcement.

Hardware-Bound Trials

Fingerprint the machine during trial activation and bind the license to that identity. Prevents trial farming across VMs and burner machines. Use TPM EK, machine SID, or disk serial as the binding key. The license is non-transferable by construction.

Graceful Degradation

When the trial expires, don't brick the app. Drop to a read-only mode, watermark exports, or show a persistent upgrade banner. Users who feel respected during the trial are more likely to convert. Hostile expiration breeds resentment and chargebacks.

Ready to ship your trial?

Meridian's loader handles license validation, hardware binding, and offline grace periods out of the box.

Get Started →