Challenges.API

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

0 €

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

lineunitwhy it is priced
Entriesper 100,000 above the free allowancedirect compute and storage cost
Replay verificationper verified runthe most expensive operation in the system — real CPU
Titles above city levelper season and disciplinerequires trust tier 2 and attention from us
Ceremony, custom domainper seasonoperations 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.