How it works
Preliminary documentation: it describes the planned product and will change before the beta.
OwnLicense splits the work in two: what handles your customers and your money lives in your accounts, and a central service run by us would add what a single Worker can’t do well on its own.
Your Worker, in your Cloudflare
The licensing server is a Cloudflare Worker with a D1 database. Both live in your Cloudflare account, along with the Ed25519 keys that sign your licenses. The Worker:
- creates licenses and readable keys when someone buys;
- activates devices and returns a signed token to your app;
- renews subscriptions and frees up devices;
- sends emails from your domain (key on purchase, sign-in link, failed payment);
- runs the customer portal (sign-in with a magic link) and the admin.
The Workers free plan, which includes D1, is usually enough to start. You pay Cloudflare directly if you grow.
Your Stripe
Customers pay through Stripe Checkout in your Stripe account. The Worker listens to Stripe’s webhook and delivers the license when the payment goes through. You choose between:
- Managed Payments: Stripe is the merchant of record and handles VAT and sales tax in each country;
- regular Checkout: you only pay the standard fee and handle tax yourself.
We never see your Stripe keys or touch your money: 0% commission from us.
Your app
Your app talks only to your Worker, never to Stripe:
- The customer buys on Stripe Checkout and receives a key by email.
- They type their email and key into your app, which calls
POST /v1/activate. - The Worker checks the license and the device limit and returns a signed token.
- Your app stores the token and verifies it offline on every launch, with the public key it ships with.
- Subscriptions renew in the background with
POST /v1/refresh.
The central service (planned)
The central service would never receive your customers’ emails, IPs or devices, or your keys. Once a day your Worker would send it counts and a signed heartbeat, and in return it would provide:
- stats with no personal data;
- alerts when the Worker, the webhook or the cron stop working;
- signed updates with tested migrations;
- the installer, the SDKs and an MCP server.
If the central service goes down or you stop paying, your Worker keeps selling, activating and renewing. See our model.