Skip to main content
InternalMarkdown

PlayerPal documentation

Day-to-day source of truth for architecture and decisions. The long-form identity and authentication specification remains spec/PLAYERPAL_AUTH_IDENTITY_SPEC.md and wins on conflict.

Precedence​

spec/PLAYERPAL_AUTH_IDENTITY_SPEC.md wins on conflict
docs/ + docs/decisions/ day-to-day source of truth
docs/historical/ superseded briefs and old ID diagrams

Do not weaken an invariant in spec §30 without an ADR.

Guides​

The documentation site (task docs:dev) has a public part for partners, prospects and investors, and this internal handbook. Public pages live in product/, developers/, analytics/, rewards/ and trust/; everything else is internal. See status.mdx for what is built and contributing/docs.md and contributing/style.md for how pages are written.

Start withFor
product/overview.mdxWhat PlayerPal is and who takes part
developers/quickstart.mdxPartner engineers integrating for the first time
analytics/metrics.mdxKPI definitions
trust/privacy.mdxPublic privacy commitments
security-privacy/personal-data.mdInternal deep dive on player data, with code evidence and gaps
shop/redemption-lifecycle.mdInternal deep dive on the demo shop

Start here​

DocumentWhat it covers
architecture.mdProduct, components, stack, delivery phases
identity.mdIdentifiers, pairwise aliases, encoding
authentication.mdIAM vs PlayerPal, methods, sessions, tokens
linking-and-bootstrap.mdRegistration, operator/provider linking, Unlink, Delete Account, discovery, merge
portals.mdURL-isolated audiences
authorization.mdIAM personas vs PlayerPal permissions
ingestion-and-availability.mdSidecar, batches, outbox, SLOs
loyalty.mdLedger, eligibility, versioned campaigns, studio analytics
kpis.mdPartner and staff KPIs, visibility tiers, anonymous comparison rules
data-model.mdIdentity and party tables
../schema/Seeds + historical SQL (DDL = TypeORM)
../infra/Local ZITADEL + NestJS + Postgres
open-questions.mdItems still undecided
decisions/Architecture Decision Records

Flows, HTTP examples, and diagrams live in the spec. Topic pages summarise decisions and cite spec sections.

Diagrams​

How to add an ADR​

  1. Copy adr-template.md to docs/decisions/NNNN-short-title.md using the next number.
  2. One decision per ADR. Keep Status / Context / Decision / Consequences.
  3. Do not rewrite a decided ADR in place. Mark it Superseded by NNNN and write a new record.
  4. Update open-questions.md if the ADR closes or opens a question.
  5. If the decision changes identity or privacy behaviour, update the relevant topic page and cite the spec section that still applies.

Historical briefs: historical/architecture-brief.md and historical/id-architecture.md.

Research notes​

Primary-source write-ups for open design questions (not day-to-day truth; ADRs and topic pages win).

NoteTopic
2026-09-05-zitadel-custom-login-ui.mdZITADEL branding vs fork Login V2 vs build-your-own vs community UI