First run opens with an empty context. One CTA — connect the account that backs your first claim.
App opens straight to context — no biometric nag, no loading wall. Immediate first paint.
Hack 1 · DNS/TLS warm starts in backgroundFirst run only: a medium sheet explains what will happen before OAuth. Never shown again.
Hack 3 · one-time trust primerReal mode: Safari opens GitHub with your existing session. Mock mode: instant handoff for UX testing.
Callback hits flexrep.xyz/oauth/github/callback. iOS routes back into REP — no manual swipe.
GitHub code → REP backend on Fly. Client secret never ships in the app bundle.
We'll open GitHub, mint a cryptographic proof of your public stats, and return here automatically.
GitHub App (not classic OAuth) for refresh tokens. PKCE on device. Backend at rep-oauth.fly.dev holds the client secret.
Client ID, PKCE verifier, Keychain storage after mint.
Code → token exchange, refresh rotation, redirect URI match.