Parent Epic
Part of #116 — Landing Page Responsiveness, Dashboard UI Cleanup & Frontend–Backend Integration QA
Depends on: PR #106 (@supabase/ssr migration) being merged.
🎯 Objective
Verify the most critical user journey in func(kode) — from clicking "Connect" on the landing page, through GitHub OAuth, through onboarding, to landing on a working dashboard — against live Supabase with no regressions from the @supabase/ssr migration in PR #106.
🛠️ Setup
- Use a test GitHub account (not your personal account) so you can repeat the journey
- Deploy to staging/Vercel preview OR run
npm run dev with .env.local pointing to the real Supabase project
- Open browser DevTools → Network tab and Console
- Walk through each step below
✅ Journey Checklist
Step 1 — Landing Page → Login
Step 2 — Onboarding
Step 3 — Dashboard
Step 4 — Return visit (already onboarded)
Step 5 — Protected route enforcement
🚨 Known Issues to Watch For
| Symptom |
Likely cause |
500 on /auth/callback |
@supabase/ssr cookie handling regression in PR #106 |
Redirected to /auth/login even when logged in |
getSession() vs getUser() mismatch in dashboard/layout.tsx |
| Onboard shown on return visit |
is_onboarded not being written correctly to Supabase |
| Navbar shows "Connect" when logged in |
onAuthStateChange listener not firing correctly after SSR migration |
✅ Acceptance Criteria
Parent Epic
Part of #116 — Landing Page Responsiveness, Dashboard UI Cleanup & Frontend–Backend Integration QA
Depends on: PR #106 (
@supabase/ssrmigration) being merged.🎯 Objective
Verify the most critical user journey in func(kode) — from clicking "Connect" on the landing page, through GitHub OAuth, through onboarding, to landing on a working dashboard — against live Supabase with no regressions from the
@supabase/ssrmigration in PR #106.🛠️ Setup
npm run devwith.env.localpointing to the real Supabase project✅ Journey Checklist
Step 1 — Landing Page → Login
//auth/loginpatchid/func-kodeapp requesting permissionsGET /auth/callback?code=...returns a redirect (not a 500)Step 2 — Onboarding
/onboard(first-time user,is_onboarded = false)userstable: row exists withis_onboarded = trueafter submit/dashboardStep 3 — Dashboard
/dashboardloads and shows logged-in user's data@usernamedropdown (not "Connect")/profile/dashboard/auth/login, Navbar shows "Connect"Step 4 — Return visit (already onboarded)
/dashboard(NOT to/onboardagain)is_onboarded = truecorrectly skips onboardingStep 5 — Protected route enforcement
/dashboard→ redirected to/auth/login/dashboard(check?redirect=/dashboardparam handling)🚨 Known Issues to Watch For
/auth/callback@supabase/ssrcookie handling regression in PR #106/auth/logineven when logged ingetSession()vsgetUser()mismatch indashboard/layout.tsxis_onboardednot being written correctly to SupabaseonAuthStateChangelistener not firing correctly after SSR migration✅ Acceptance Criteria