Price and licence
The software is yours.
Running it is what costs.
The code is public domain as far as law allows. What we sell is the operation of it — metered by what it actually consumes, never by how many players you have.
Free, and staying free
One app. Leaderboards, qualifications, challenges, badges, collections, events, daily seeds, profiles, rivals, blocks, reports, invites, waitlists, and titles up to city level. Up to 100,000 entries a month. No card, no trial clock.
This is not a funnel. It is the level at which the service costs us close to nothing, and at which a small game should never have to think about a bill.
Metered where it costs
| line | unit | why it is priced |
|---|---|---|
| Entries | per 100,000 above the free allowance | direct compute and storage cost |
| Replay verification | per verified run | the most expensive operation in the system — real CPU |
| Titles above city level | per season and discipline | requires trust tier 2 and attention from us |
| Ceremony, custom domain | per season | operations and care |
Never per player. A per-user price punishes exactly the growth that makes a competition layer valuable, and it pushes developers into avoiding accounts — which is the opposite of what anyone here wants.
Rates are not switched on yet: the service currently runs for our own apps. Until an outside developer actually needs metering, everything is free and the roadmap says so openly.
CC0, and why not simply "public domain"
Under German law you cannot give up your copyright — § 29 (1) UrhG. A bare declaration of "this is public domain" therefore does nothing here and leaves users guessing.
CC0 is built for exactly that: it waives every right as far as possible, and for the jurisdictions where that fails it contains a fallback licence — an irrevocable, worldwide, royalty-free permission to do anything. The result in Hamburg is the same as in California.
Honest footnote: CC0 explicitly grants no patent rights. There is no patented technique in this codebase, so it does not matter here. If you need patent language, use Apache-2.0 instead.
Why giving away the code is safe
Because the code was never the moat. The moat is the population: one identity valid across many apps, districts with enough people in them for a title to mean something, and titles somebody already holds.
Copy the code and you get an empty database. What you cannot copy is the eleven people already in Eimsbüttel.
There is a second effect, and it is the one that matters to a developer: integrating carries no vendor risk. If this service dies, you run it yourself. For a competition layer that holds your players' titles, that is a serious argument — and it costs us nothing we could have sold.
Self-hosting
Clone it, run npm test, deploy it to your own Cloudflare account. No licence key, no phone-home, no crippled edition. You also avoid needing a data processing agreement with us, because there is no processor involved.
This is not an escape hatch we tolerate. It is a deliberate part of the model, and the reason the documentation covers deployment as carefully as it covers the API.