Sell your software. Let Keyvane handle access.
License keys, plans, feature access and usage limits in one API, kept in sync with your Stripe subscriptions. Stop rebuilding monetization infrastructure for every product.
- Works with your Stripe account
- MIT-licensed SDK
- Self-hostable
Charging for software means building the same plumbing every time.
Plans, keys, limits and Stripe edge cases take weeks to get right, and your customers never pay you for them.
| What you would build yourself | What Keyvane gives you |
|---|---|
| Separate free and paying users | A default Free plan and paid plans, checked with one call |
| Generate and email license keys | Keys with expiry, revocation and device limits, created automatically on purchase |
| Cut off access when a subscription ends | Access follows the subscription, including grace periods and your cancellation policy |
| Give each plan different features | An entitlement matrix you edit in the dashboard, no deploy needed |
| Enforce usage and device limits | Atomic usage metering and per-device activation limits |
| Mirror Stripe changes into your database | Signed, idempotent and order-safe webhook processing with replay |
| Handle upgrades, renewals and failed payments | Upgrades keep this month’s usage; failed payments get a grace period |
From first sale to cancellation, access stays correct.
Your payment provider keeps charging customers. Keyvane turns its events into product access.
Create your product
Add the software you sell, for example an AI PDF Analyzer.
Define plans
Free, Pro and Business, each with the features and usage limits it unlocks.
Connect Stripe
Point one Stripe webhook at Keyvane and map your prices to plans. No Stripe API keys needed.
Integrate the SDK
Ask what a customer may do, record usage or validate a license key.
A customer buys
Stripe creates the subscription. Keyvane verifies the event and grants the plan within seconds.
Access stays in sync
Upgrades, failed payments and cancellations update access without code on your side.
Three calls cover most products.
Register customers with your own user IDs, ask what they may do, and record usage. The TypeScript and Python SDKs have zero dependencies, and the same calls work over plain HTTP from any language.
import { Keyvane } from '@keyvane/sdk';
const keyvane = new Keyvane({ baseUrl: 'https://keyvane.dev' });
// What may this customer do right now?
const access = await keyvane.entitlements.get({ customer: user.id });
if (!access.can('export')) return showUpgrade('Export is on Pro');
// Consume one analysis. The limit is enforced atomically.
const usage = await keyvane.usage.record({
customer: user.id,
feature: 'pdf_analysis',
idempotencyKey: job.id,
});
if (!usage.allowed) return showUpgrade(usage.message);
Alex sells an AI PDF Analyzer.
Three plans, one metered feature and one Pro-only feature. Alex defines them in Keyvane, connects Stripe and adds a few lines of code. When a customer buys Pro, their limit jumps from 10 to 500 analyses within seconds of the Stripe event. When they cancel, they drop back to Free.
These are the prices of Alex’s product, not Keyvane’s. The example app is in the repository.
Try the example| Plan | Monthly price | PDF analyses | Export |
|---|---|---|---|
| Free | $0 | 10 | Not included— |
| Pro | $12 | 500 | Included |
| Business | $39 | 3,000 | Included |
Everything between “payment received” and “feature unlocked”.
Built for products with a handful of plans, without hundreds of settings to learn first.
Decide access
One source of truth for what every plan includes.
- Plans and an entitlement matrixOn/off features and limits per plan, changed without a deploy
- Usage limitsAtomic and idempotent, resetting daily, monthly, yearly or never
- Customer viewPlan, usage, licenses, subscriptions and history per customer
Issue and protect keys
For desktop apps, CLIs, plugins and APIs.
- License keysExpiry, suspension and revocation, issued by hand or on purchase
- Device activationsPer-plan seat limits with privacy-friendly fingerprints
- Publishable keysValidate keys from client apps without exposing your secret key
Stay in sync with Stripe
Payment events become access, reliably.
- Subscription syncCheckout, Payment Links and the Billing API, linked to your user IDs
- Grace periods and policiesKeep access while Stripe retries; choose when cancellations end it
- Replay and audit logEvery event stored, failures replayable, every change attributed
Built for the edge cases that cost you customers.
Webhooks arrive late, twice or out of order, and payments fail. Keyvane is designed so access stays right anyway.
- Verified
- Every webhook is checked against its Stripe signature and a five-minute replay window before anything is stored.
- Stored
- Each event is saved with its payload and outcome, so you can see exactly what Keyvane did and why.
- Idempotent
- Duplicate deliveries are acknowledged and never applied twice. Usage records accept idempotency keys.
- Atomic
- Each event is applied in one transaction, and usage limits are checked and consumed in one step.
- Order-safe
- Older snapshots never overwrite newer ones, and an ended subscription is never brought back.
- On time
- Grace periods, expirations and scheduled cancellations take effect at request time, with no cron jobs to miss.
Stripe charges. Keyvane grants access. Your app asks.
Keyvane is not a payment processor, Merchant of Record or tax engine, and it never touches card data. It does one job: turning commercial events into licenses, access and usage rights.
Stripe
Payments, invoices, taxes and the customer portal
Keyvane
Plans, entitlements, license keys, usage limits and the audit log
Your app
A web app, API, desktop app or CLI asks what a customer may do
Open source where you integrate.
The SDK, integration examples and documentation are MIT-licensed, so you can read exactly how access decisions are made and contribute fixes. The platform is source-available and free to self-host for your own products.
# Validate a license key from a desktop app or CLI
curl https://keyvane.dev/v1/licenses/validate \
-H "Authorization: Bearer kv_pk_…" \
-d key=KV-7K2QD-9XWMN-4RT8H-PZ3VB \
-d fingerprint=macbook-a1b2
{ "valid": true, "code": "valid", "plan": "pro", … }
Pricing that grows with your product.
A subscription, never a commission on your revenue. Free while Keyvane is in public beta.
For trying Keyvane and for open-source projects.
- 1 product
- Basic license management
- Limited active licenses
- Core SDK & API integration
- Community support
For independent developers earning their first revenue.
- Multiple products
- Higher license limits
- Stripe subscription sync
- Feature access control & usage limits
- Basic analytics
For growing products with more customers and a team.
- High license volume
- Team members
- Advanced usage tracking
- Audit log
- Priority support
For advanced security and contractual needs.
- Custom limits
- Contract-based support
- Security & access options
- Custom integrations
Beta pricing in USD; it may change as we learn from early users. Pricing details
Questions developers ask
What is Keyvane?
Keyvane is an open-core licensing and entitlement platform for independent developers and small SaaS teams. It turns Stripe subscription events into license keys, plan-based feature access and usage limits, and answers one API call: what may this customer do right now?
Is Keyvane a payment processor?
No. Keyvane never touches card data or money and is not a Merchant of Record. Stripe keeps charging your customers, sending invoices and handling taxes. Keyvane manages licenses, access and usage rights on top of it.
Do I have to give Keyvane my Stripe API key?
No. Keyvane only needs the signing secret of one webhook endpoint you create in Stripe, and it verifies every event with it.
What happens if a webhook is missed, duplicated or arrives out of order?
Every event is stored and applied in a transaction. Duplicates are acknowledged without being applied twice, older snapshots cannot roll access back, and failures return an error so Stripe retries. You can replay any failed event from the dashboard.
Can I use Keyvane for desktop apps and CLIs?
Yes. License keys with device activation limits work today with a publishable key that is safe to embed in your app. Signed offline license files are on the roadmap.
Which payment providers are supported?
Stripe subscriptions, through Checkout, Payment Links or the Billing API. More providers are planned. Your app asks Keyvane for entitlements instead of asking the provider, so adding one will not change your access code.
Is Keyvane open source?
The SDK, examples and documentation are MIT-licensed. The platform is source-available under the Functional Source License (FSL-1.1-MIT): you can read, modify and self-host it for your own products, and every release becomes MIT two years after it ships.
What if Keyvane is unreachable?
Your app decides. The SDK raises typed errors, so you can keep free features working and pause paid ones, or the reverse. Short-lived caching of entitlements absorbs brief network blips.
Build independently. Launch globally. Monetize simply.
Connect your first product in about ten minutes. Free during the public beta.