Convex-Creem

Drop-in Billing for Convex Apps

Subscriptions, one-time purchases, seat-based pricing, and a customer portal — all powered by Creem and wired to your Convex backend. Available for React and Svelte.

Creem Convex
Test card: 4242 4242 4242 4242 — any future expiry, any CVC, any cardholder name

Subscription
With Trial (4 Cycles)

Subscription plans with a free trial. Monthly, quarterly, semi-annual, and annual billing cycles — the cycle toggle appears automatically from the registered plans.

Loading billing model…

Subscription
Without Trial (Monthly Only)

Monthly-only plans with no trial period. Since only one billing cycle is registered, the cycle toggle is hidden automatically.

Loading billing model…

Subscription
Seat-Based (User-Selectable)

Per-seat pricing where the customer picks how many seats before checkout. The seat picker lets users choose their team size.

Loading billing model…

Subscription
Seat-Based (Auto-Derived)

Per-seat pricing with a fixed seat count derived from your app (e.g. team member count). No picker is shown — the unit count is set programmatically. Hardcoded to 5 in this demo.

Loading billing model…

One Time Purchase
Single One-Time Product

A single product that can be purchased once. After purchase, the card displays an "Owned" badge instead of a buy button.

One Time Purchase
Mutually Exclusive Product Group

A group of products where owning one affects available actions on others. Upgrade paths are defined via a transition graph — upgrading from Basic to Premium uses a dedicated delta product. Product images are synced from Creem.

Try it: Buy the Basic product first, then upgrade to Premium.

One Time Purchase
Repeating Product (Consumable)

A consumable product that can be purchased repeatedly (e.g. credits, tokens). The buy button stays active after every purchase — no "Owned" badge is shown. Product image is synced from Creem.