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 →