Demo Modules Data Model Compare Pricing FAQ Help Dashboard Get Started

Help Center / Licensing

09 · Licensing

One key, one website, and exactly what the license check sends.

Measr phones home in precisely one place, and this page documents it down to the field level: what the license key is, when the check runs, the three values it transmits, what it can never touch, and why nothing you have installed ever stops working. This project is built on trust, so the check is built to be verified, not taken on faith.

Why a license check exists

Measr is self-hosted and source-available. Your analytics data lives in your own Supabase project, and Creative Data Engineers never receives, stores, or can access it. There are no accounts, no feature gates, and no lock-in: if you stop paying, everything you installed keeps working, forever. That model only works if subscriptions actually fund the work, and the fair exchange is simple: one license, one website.

The license check is the lightweight mechanism that keeps that exchange visible. It is not DRM. You have the full source code and could remove the check in a minute; we know that, and we ship it anyway. It exists so that honest use stays the easy default and a small, independent product stays funded and maintained. We trust you with the entire codebase. This is the small thing we ask in return.

What the key is

At checkout you receive a permanent license key: msr_live_ followed by 32 random characters. It never expires and is never rotated. Renewals happen entirely on the Stripe side, so the key you got on day one stays valid for as long as your subscription does, and comes back to life if you ever resubscribe. In your install it is stored in a small .measr-license file in your website project (gitignored) and nowhere else.

Exactly what is transmitted, and when

The check runs in exactly two situations, both started by you, never by a visitor:

Each check is a single HTTPS request to measr.app's license endpoint containing exactly three values:

FieldExampleWhy it is sent
licenseKeymsr_live_ab12…Identifies the subscription.
domainexample.comThe website the license covers.
version1.5.0Your installed Measr version, so the response can tell you whether an update exists.

That is the complete list. No analytics data, no visitor data, no page views, nothing from your database, and no personal data of yours beyond what Stripe already holds from your purchase. Like every HTTPS request, the connection carries your IP address; the endpoint uses it transiently for abuse protection and stores it only as a salted daily hash, never raw.

Your visitors are never involved. The tracking SDK that runs in visitors' browsers sends data only to your own Supabase project. It contains no license code and never contacts a Measr-owned server. You can verify this yourself: the license check appears nowhere in sdk/measr.js.

What the response does

The endpoint answers with your subscription status, and the status gates exactly one thing: updates.

StatusWhat happens
activeUpdates proceed.
graceA payment failed recently. Updates still proceed, with a reminder to check your payment method.
lapsedThe subscription ended, so updates pause. Your installed Measr keeps working exactly as-is, indefinitely: tracking, dashboard, and data are untouched. Resubscribing reactivates the same key, because validity lives on our side, not in the key.

And the rule we consider load-bearing, the fail-open rule: if the license endpoint is unreachable or returns an error, updates proceed anyway. An outage on our side must never block a paying customer, and no license state can ever break your running analytics.

The domain binding

We do not ask for your domain at checkout. The first domain that checks in becomes the licensed domain. If checks later arrive from a different domain, nothing is blocked: the extra domain is recorded on our side and we may reach out, because one license covers one website. Moving your site to a new domain? Tell us at support@measr.app and we update the record.

Rate limits

The license endpoint accepts up to 120 requests per minute per IP address. That is abuse protection for the endpoint, not a usage quota: normal use is one check at setup and one per update run, and your visitors and your dashboard never talk to this endpoint at all. If a check is ever rate limited, the update assistant simply proceeds without it, the same fail-open rule as an outage. Operating at a scale where the limit could matter, like an agency running many installs or CI pipelines sharing one outbound IP? Email support@measr.app and we raise it for your key.

Where to read the code

Every claim on this page is verifiable in the repository you already have access to as a customer:

The repository also ships docs/LICENSING.md, the engineering-level version of this page. Questions about any of it: support@measr.app. We would genuinely rather explain it than have you wonder.

Frequently asked

What does the Measr license check send?
Exactly three values: your license key, your site's domain, and your installed Measr version. It sends no analytics data, no visitor data, and nothing from your database. It runs only during setup and update checks, never from your visitors' browsers.
Does my license key expire?
No. Your key is permanent. Renewals happen automatically through your Stripe subscription; the key never changes and you never have to update it.
What happens if I cancel my subscription?
Everything you have installed keeps working exactly as-is, indefinitely: tracking, dashboard, and data are untouched. Only updates pause. If you resubscribe later, the same key becomes active again.
Can the license check break my analytics?
No, by design. The check gates updates and messaging only. If the license server is unreachable, updates proceed anyway. No license state can stop your tracking or your dashboard.
Why does Measr have a license check at all?
Measr is self-hosted with no accounts and no lock-in, so the check is the one lightweight mechanism that keeps the model fair: one license funds one website. It is how a small, independent product stays maintained without ever touching your data.
Previous← Privacy and GDPR UpHelp Center