Setup

What this deployment has configured.

  • Database + storage ready

    Practice history sync. Without it, /api/runs returns 501 and stars stay on-device.

    SUPABASE_URL · SUPABASE_SERVICE_ROLE_KEY

  • Sign-in ready

    OAuth in the browser. Without it, the sign-in button hides itself.

    NEXT_PUBLIC_SUPABASE_URL · NEXT_PUBLIC_SUPABASE_ANON_KEY

  • AI ready

    Reading uploaded book pages into playable sheets (/api/sheet-extract). Without it, uploads return labelled demo data instead of a real read.

    ANTHROPIC_API_KEY

  • AI workspace ready

    Required only for identity-linked Anthropic keys, which reject every request without it. Plain workspace keys need nothing here.

    ANTHROPIC_WORKSPACE_ID

  • Suggestions ready

    The footer suggestion box files GitHub issues. Without a token it tells people it is not set up rather than failing silently.

    GITHUB_TOKEN

  • Scheduled jobs not configured

    Guards /api/cron/*. Nothing is scheduled today (vercel.json has no crons), so leaving it unset is correct.

    CRON_SECRET

  • Owner pages ready

    Visit /?key=… once per device. Unset means nobody is the owner.

    ADMIN_KEY

Everything degrades on its own — the trainer runs fully with nothing configured. See .env.example.

Good Ears — Practice that listens