The latest updates on your projects. Learn more about Vercel for GitHub.
| Project | Deployment | Actions | Updated (UTC) |
|---|---|---|---|
| dashboard | Preview, Comment | May 9, 2026 9:22pm |
PostHog data shows ~5% of users who pick "Consumer" in onboarding (851 users / 30 days) end up on Developer Platform instead of Connect, and 481 of them never recover — they don't find the switcher and never reach Connect at all.
The biggest contributor is in our root-path redirect logic at src/app/(public)/page.tsx. When the last_visited cookie is missing or doesn't carry the connect: true flag, the fallback unconditionally sends anyone with a project to Platform:
if (defaults?.orgDecodedSlug && defaults.projectDecodedSlug) {
redirect(`/${org}/${project}`); // ← Platform, regardless of role
}
Every user has an auto-created _first_project, so this fallback fires constantly. Cookie loss is common: visiting any Platform layout silently overwrites the cookie without connect: true, OAuth callbacks fall back to / when redirectTo gets stripped, and new sessions start without a cookie at all.
We already store the user's onboarding choice as onboarding_platform in their Apollo user metadata (savePlatformMetadata.ts) — but routing code never reads it.
Read onboarding_platform alongside the org/project defaults and use it as a tiebreaker. If the user picked Consumer, default them to /{org}/~/connect instead of /{org}/{project}.
getOnboardingPlatform(userId) helper in ~/clients/auth/server.ts (the schema already parses the field)Developers continue to land on Platform exactly as before. This only changes the Consumer path that was previously broken.
(org)/[org]/layout.tsx and (project)/[org]/[project]/layout.tsx layouts still wipe the connect: true flag from the cookie when rendered. With this PR's tiebreaker in place, that wipe is no longer load-bearing for routing — but it's still worth tightening so the cookie is a reliable source of truth on its own./connect-callback falls back to / when redirectTo is missing. With this PR, / will route consumers correctly anyway, but the callback could send them straight to /{org}/~/connect to skip the bounce./ → lands on /{org}/~/connect/ → lands on /{org}/{project} (unchanged)last_visited cookie set to org:project → lands on Platform (unchanged — cookie still wins)last_visited cookie set to org:~connect → lands on Connect (unchanged)🤖 Generated with Claude Code
The latest updates on your projects. Learn more about Vercel for GitHub.
| Project | Deployment | Actions | Updated (UTC) |
|---|---|---|---|
| dashboard | Preview, Comment | May 9, 2026 9:22pm |