For SaaS teams with several plans
Identity, subscriptions, metering and entitlements on one customer record
ShipRev keeps the four on the same customer record and takes on keeping them aligned. It is built for small SaaS teams that already sell several plans, with quotas and overages to handle.
The managed cloud is built and not yet open. Self-hosted is not published yet.
Who it's for
SaaS teams that already sell more than one plan
You sell several tiers, enforce quotas and decide what happens when a customer goes over. The state behind that usually lives in four places.
A sign-in service
Who your users are and which organization they belong to.
Stripe
What each customer subscribes to, and their invoices.
A usage counter
What each customer has used this period.
Your own code
Which tier unlocks which feature, and how much of it.
- Plan limitsYou sell plans with features and limits, and the limits live in your code.
- Changing a priceYou need to change what a plan costs or includes, and people already pay for it.
- Team plansYou sell a plan to a company, and everyone on its team works under it.
- Monthly allowancesYou give each plan a monthly allowance and handle what goes over.
Why ShipRev
What changes when the four share one record
A plan change reaches everything at once
Identity, subscriptions, usage and entitlements are kept by one service in one database and updated in the same transaction. When a customer changes plans, what their organization holds and what it has left change with it. You do not copy that state between systems yourself.
How tiers become entitlementsChange a price without changing code
Edit a tier and publish it as a new version. Your application code stays as it is, and existing subscribers keep the version they bought.
SubscriptionsDecisions your backend can act on
On the request path, the Server SDK tells your backend whether an organization may do something, how much it has left, and whether that answer is live or degraded.
Connect your backend
What it is
One customer record, from tiers to usage
Identity, subscriptions, metering and entitlements sit on the same customer record. In the order your buyers meet them, ShipRev covers defining tiers, collecting payment from your end users, delivering what each tier includes, and recording usage. It does not include a sales front end or a fulfilment back end.
What it ships as
Core service
Holds the four in one process, one database and one transaction.
Operator console
For your team: define products, capabilities and tiers, connect your Stripe account, and manage end users and their organizations.
End-user portal
For your end users, under your brand and on your own domain: where they sign up and sign in, choose a plan and pay, and move to another plan.
Server SDK for Node
For your backend: reports usage and asks for an entitlement decision on the request path, with the remaining balance and whether the answer is live or degraded.
Management API
For your systems: every action in the console has a matching endpoint.
Developer console
For you and your team on the managed cloud: create an account, choose a plan, create an app in one of the regions we offer, see your subscription, invoices and usage, and open each app's operator console from there. Not used when you self-host. Built and not yet open, like the managed cloud itself.
In your backend
Decide on the request path, then report usage
The Server SDK for Node verifies the caller's session, decides whether their organization may go ahead, and records what was used.
import { randomUUID } from 'node:crypto';
import { shiprev } from './shiprev';
export async function exportReport(token: string) {
// Throws if the token is not a valid session of your application: answer 401
const claims = await shiprev.verifyToken(token);
// The organization comes from the verified token and from nowhere else.
const ruling = shiprev.adjudicate({
organization_id: claims.organization_id,
capability_key: 'report_exports',
quantity: 1,
operation: 'write',
});
if (!ruling.allowed) return { status: 403, reason: ruling.reason };
// ... do the work, then report it
await shiprev.reportUsage({
usage_event_id: randomUUID(),
organization_id: claims.organization_id,
capability_key: 'report_exports',
quantity: 1,
occurred_at: new Date().toISOString(),
});
return { status: 200 };
}How you run it
Two ways to run it
Both run the same code.
Self-hosted
You run it on your own infrastructure. We plan to publish it as source-available when the repository opens. The repository is not public yet.
Managed cloud
We run it for you, on a subscription priced by how many apps you run and how many usage events you record each month; the plans we plan to offer are on the pricing page. It is built and not yet open: account creation is not open to the public.
What it is not
What ShipRev does not do
It is not a merchant of record
When you run it yourself, ShipRev connects to your own Stripe account with your own keys. Payments go to that account and do not pass through us.
It takes no share of your revenue
ShipRev does not take a percentage of what your customers pay you.
It does not run your marketing
No email campaigns, SMS, social posts or ads. Transactional email, such as renewal notices and failed-payment notices, is part of it.
It is not a CRM
ShipRev is not a standalone customer relationship manager.
The portal is not your website
The end-user portal does not host your product site, marketing pages or content.
FAQ
Questions
Not yet. The source repository is not public, and the managed cloud is built but not yet open, so there is nothing to download, deploy or sign up for today.
Not in the OSI sense. We plan to release the source under the Elastic License 2.0, plus one commercial-use condition, when the repository becomes public. Under that plan you could read, modify and self-host it, including running it inside your own SaaS product for your own end users. Among other conditions, the Elastic License 2.0 does not allow providing the software to third parties as a hosted or managed service where the service provides users with access to any substantial set of the features or functionality of the software. We also intend to require a commercial license for running several apps from one deployment for commercial use. Nothing on this site grants a license: this answer is a summary, the LICENSE file published with the repository will be the binding text, and the final terms will be published together with the repository.
Yes. ShipRev keeps subscription state, not money. When you run it yourself, it connects to your own Stripe account with your own keys, payments go to that account, and ShipRev is not the merchant of record.
A managed cloud is built and is not open yet. The plans and prices we plan to offer are on the pricing page, and they may change before it opens. Separately, you can join the early access list below.
Small SaaS teams that already sell more than one plan and enforce quotas, with identity, subscriptions, usage and entitlements spread across several places. If you sell a single plan with no usage limits, you probably do not need it yet.
Identity, subscriptions, metering and entitlements, kept aligned on one customer record
Early access
Early access to the managed cloud
The managed cloud is not available yet. Join the early access list, and when early access opens, we will tell you before we tell anyone else.
The form is on Google Forms. It asks for your email address and three optional questions about your setup, which we keep for up to 12 months. See our privacy notice.