Billing without mystery states.
Wensity has two separate purchase models: component library access and individual template ownership. They intentionally stay separate in pricing, checkout, database tables, and dashboard UI.
Two products
Free components need no purchase. Pro Annual and Pro Lifetime unlock premium component source, premium blocks, and premium CLI installs for components.
Paid templates are bought one by one. Owning a template does not unlock Pro components, and Pro components do not unlock paid templates.
Component plans
Pro Annual is a yearly subscription. It unlocks every premium component and block while the license is active. Pro Lifetime is a one-time component library license with no expiry date.
Free accounts can preview everything and install free components.
Pro Annual unlocks premium components and blocks for one year at a time.
Pro Lifetime unlocks premium components and blocks without renewal.
CLI premium installs require an API token from the licensed account.
Template purchases
Each paid template creates ownership for one template slug. It appears in the dashboard and can be re-downloaded through Wensity's archive route as long as the purchase remains valid.
Switching plans
If you upgrade from Free to Pro, premium component and block source unlocks immediately after the webhook records the license. If you already hold an active component license, checkout blocks duplicate component purchases before creating a new Lemon session.
A lifetime component license has expires_at = null in the database and stays valid unless manually revoked for support or fraud reasons.
Cancellations
Cancelling an annual subscription stops future renewals. Access remains active until the paid period ends, then the webhook marks the license expired. The dashboard shows cancellation-at-period-end when Lemon reports it.
Billing history
Open Dashboard Billing for a unified purchase history across component licenses and template purchases. The dashboard is server-rendered from Supabase and hard-filters every query by your signed-in user id.