A free tier
Free in your Worker
What runs in your Worker has no artificial limits: it's yours.
- Licenses, keys and activations
- Plans, coupons and offers
- Customer portal and emails
- Full admin
- Security patches, always
Coming soon · waitlist only
A licensing system that runs in your Cloudflare account: keys, activations, payments through your Stripe and a portal for your customers. With paid plans, our central service adds what a Worker can't do alone: stats with no personal data, alerts when something breaks, signed updates, SDKs and an HTTP API for any language.
Your Cloudflare account
Once a day: version, counts and health
Signed token: plan and alerts
Central serviceAggregated stats · Email alerts · Signed updates
Never leaves your account: your customers' data or your keys.
It isn't available yet. The licensing system exists and Color Vivo uses it for its own apps; the central service, the installer and the SDKs for third parties are still to be built. The waitlist tells us whether it's worth it. We're not giving anyone access yet: join the list and we'll let you know when the beta opens.
Activating, renewing and validating is an HTTP API, and the token is signed with Ed25519, so any language can verify it offline. The server doesn't care what you sell.
How it works
An installer creates the Worker, the D1 database, the secrets and your signing keys in your account. On paid plans, a private repo with automatic deploys opens a pull request for every release.
Public installer · private repo on paid plans
Paste your key and the installer registers the webhook through the API. Use Managed Payments (Stripe is the merchant of record and handles VAT) or regular Checkout (you handle tax). We never see your keys.
Stripe Checkout and Billing
Add the SDK or call the API from your product, share your checkout link and you're done: keys by email, activations, renewals and your customer portal.
SDK or HTTP API
The installer, the private repo and the central service are what we'll build if there's enough interest. They don't exist today.
What lives where
The service doesn't host your Worker or store your customers. It receives daily counts and a heartbeat, and in return gives you what a Worker can't provide on its own.
Your Cloudflare and your Stripe
With paid plans (prices to be decided)
We never receive: your customers' emails, their IPs, their devices, your Stripe keys or your signing keys. That way we aren't a processor of that data and you don't need a data processing agreement with us.
Our model
We're not publishing prices yet: we'll share the central service's prices before the beta opens. What's already decided is how it works.
No prices yet
Free in your Worker
What runs in your Worker has no artificial limits: it's yours.
Paid prices to be set
What a Worker can't do alone will have paid plans, with prices still to be decided.
Yours in your Cloudflare
You need your own Worker in your Cloudflare: your data, your licenses and your database (D1) live in your account, not ours.
0% from us
We never touch your money: payments go from your customer to your Stripe account, and Stripe charges you its fees directly.
Stripe is the merchant of record and handles VAT in each country: about 3.5% on top of the standard fee, roughly 5% + €0.25 in total for European cards.
Only the standard fee (about 1.5% + €0.25 for European cards); you handle tax and invoicing.
Stripe fees are indicative as of Oct 22, 2026.
Features
What runs in your Worker has no artificial limits: it's yours. What lives in our central service is what the plans are about.
The same licensing system Color Vivo uses for its apps
Readable keys with a check digit, device limits per license, free up a device from the app or the portal. The app gets an Ed25519-signed token it validates offline, plus a signed revocation list.
Lifetime, subscriptions from monthly to every two years, free, add-ons and per-license features, and stackable tiers customers can upgrade by paying only the difference.
Customers sign in with a magic link to see their licenses, devices and invoices, and buy or upgrade from there.
Key on purchase, sign-in link, failed payment and lifecycle notices, sent from your domain.
Discount codes and offers through the portal, by email or by link.
Apps, plans, licenses, customers, stats and settings, with a change log.
Limits per IP and per email, one free license per customer and app, and optional Cloudflare Turnstile.
What would make it worth paying for
Counts by day, app, plan, country and version; revenue aggregated by currency; several apps and Workers in one dashboard; free-to-paid conversion.
When the heartbeat stops, the Stripe webhook fails, the cron doesn't run, errors or abuse spike, or a signing key is about to expire.
Numbered releases with notes and tested migrations. Security patches for every plan, free included.
One command to set everything up. On paid plans, a private repo with a GitHub Action that opens a pull request for every release and deploys when you merge it.
C# and Swift first; then JS/TS, Python, Kotlin/Java, PHP, Go and Rust/C++. Until then, the HTTP API and the guide work from any language.
An MCP (Model Context Protocol) server lets assistants like Claude, ChatGPT, Cursor or VS Code use these tools directly. At three levels, each with its own data:
Public, in the central service
Integrate licensing into your app: guide, API, examples, generate activate and renew code in your language, explain errors.
No personal data
Central service, signed in
Ask about your stats, the state of your Workers, alerts and releases: “how many Mac activations did I get yesterday?”
Counts only
In your Worker, in your Cloudflare
Support from your assistant: find a license, free up a device, resend a key, create a coupon. Off by default, with per-tool permissions and confirmation for changes.
Personal data: that's why it lives in your account and you turn it on
Comparison
There are good tools for selling software. The difference is where your customers and your payment account end up. An honest summary, including what we don't do as well.
| Feature | OwnLicenseYour Worker + central service | Keygen CESelf-hosted licensing | MoonbaseMoR + licensing | PolarMoR + keys | Lemon SqueezyMoR + keys | Paddle BillingMoR |
|---|---|---|---|---|---|---|
| Where your customers' data lives | In your Cloudflare | On your server | At Moonbase | At Polar | At Lemon Squeezy | At Paddle |
| You charge through your own Stripe account | Yes | You charge separately | No: the provider charges | No: the provider charges | No: the provider charges | No: the provider charges |
| Keys with offline validation | Yes: Ed25519 token | Yes | Yes | Keys; offline not documented | Keys; offline not documented | No keys in Billing |
| Self-hosted | Serverless: Workers + D1 in your account | Yes: Docker, Postgres and Redis | No | No | No | No |
| Fee per sale | 0% from us · Stripe charges its fees (≈ 5% + €0.25 with Managed Payments) | 0% · plus your payment processor | 5% + €1 per order | 5% + $0.50 (Starter) | 5% + $0.50 | 5% + $0.50 |
Scroll the table sideways to see every provider.
The OwnLicense column describes the service as planned; it doesn't exist yet. All trademarks belong to their owners and have no relationship with this service.
Data from each provider's public pages as of Oct 22, 2026, indicative. Prices exclude VAT and are in the provider's currency.
Not yet, and we're not giving anyone access for now: there's only a waitlist. Join it and we'll let you know when the beta opens. The licensing system exists and Color Vivo uses it for its apps, but it still has to be made generic for third parties, and the installer, the central service and the English docs are still to come. There's no date: it depends on how many people sign up. The private beta would be with a few makers, free of charge, in exchange for your feedback.
No. Emails, IPs, devices and keys live in your Worker, in your account. The central service only receives the version, daily counts and health status. That's the core rule of the design.
Not us: 0% commission from us. Stripe charges you its fees directly. With Managed Payments (Stripe is the merchant of record and handles VAT), about 3.5% on top of the standard fee: roughly 5% + €0.25 in total for European cards. Without Managed Payments, only the standard fee (about 1.5% + €0.25) and you handle tax. Fees are indicative as of Oct 22, 2026.
Not in fees: charging through Managed Payments costs the same as a MoR or a bit more. What changes is who owns the customers and the payment account: here they're yours and you can leave whenever you want.
There will be a free tier: what runs in your Worker has no artificial limits. The central service will have paid plans; we'll publish prices before the beta opens. What won't change: 0% commission from us on sales.
Your customers notice nothing: the Worker keeps selling, activating and renewing. After a 30-day grace period you lose stats, alerts and new releases, and you'll see a banner in the admin. Security patches keep coming.
Your Worker doesn't depend on it to sell or validate. Without a connection to the central service nothing happens for 30 days; after that, you'll just see a notice in the admin.
That's the plan: with regular Checkout you only pay Stripe's standard fee and you handle tax (with or without Stripe Tax). Today the system uses Managed Payments, and regular mode is part of the remaining work.
Inside the stores, their rules require in-app purchase to unlock digital content, with exceptions in some countries. It works for the version you sell outside the store, or to unlock on desktop what was bought on your website.
On activation, your app gets a token signed with Ed25519. It ships with the public key and checks the token without a network connection; subscriptions expire with the token and renew in the background. The app never waits for the network to start.
Any: activating, renewing and validating is an HTTP API. SDKs would come first for C# and Swift, then JS/TS, Python, Kotlin/Java, PHP, Go and Rust/C++.
A little. You'll need Cloudflare and Stripe accounts, run the installer and integrate the SDK or the API into your product. The goal is for a maker to be selling within an hour without asking for help.
It runs in your account and you pay Cloudflare directly. The Workers free plan, which includes D1, is usually enough to start; if you grow, the Workers paid plan starts at $5 a month.
It's one of the ideas: an importer that runs in your Worker, reads your keys with your provider token and keeps them valid. It doesn't exist yet; if you need it, tell us in the form.
Because we want you to be able to read and change the code, but not let someone resell it as a service or remove the license check. ELv2 covers exactly that.
First we send you a link to confirm it; if you don't confirm within 30 days, we delete the sign-up. After that we only use it to tell you about the beta and the launch. We don't share it with anyone, and every email includes an unsubscribe link that deletes your data. Details in the privacy policy.
You'll get the source of your Worker: you can read it, use it and modify it. The Elastic License 2.0 (ELv2) only forbids two things: offering it as a service to third parties, and removing or bypassing the license check.
There are no kill switches that could stop your sales. If you stop paying, your customers notice nothing: the Worker keeps selling, activating and renewing. You lose what lives in the central service (stats, alerts and new releases), and security patches keep coming.
Color Vivo Internet, SL, a Spanish company that makes desktop apps. We built this licensing system to sell our own apps outside the app stores, with our own Stripe and our customers in our own account, and we use it in them.
The idea is to offer the same system to other makers, plus a central service for what a Worker can't do well on its own. Before building it, we want to know if you're interested.
It's a closed MVP: nobody can use it or sign up for it yet. Join the list and we'll let you know when the private beta opens. Your answers help us decide what to build first.