ROADMAP — Identity & Persistence Infrastructure
Objective: add identity, cloud sync, and future monetization support without breaking the lightweight anonymous experience.
Principles
- login should be contextual, not intrusive
- anonymous local bookmarks keep working without regression
- local anonymous storage remains capped and is cleared on auth transitions
- each stage ships independently
- auth work should not penalize the public browsing experience
Progress
| Stage | Status |
|---|---|
| Social Login (Google) | Complete |
| Cloud Sync + Library | Complete |
| GitHub OAuth | Pending — see spec |
| Plan Pro | Pending |
Architecture Direction
The implemented path uses Supabase Auth client-side instead of the earlier NextAuth-centered ADR because it stays compatible with static export and avoids server auth routes for public delivery.
Completed Work
Stage 1 — Social login
- Supabase OAuth client-side flow
- auth facade and provider
- login modal and navbar auth integration
- static callback route
- session restore and bookmark gating
Stage 2 — Cloud sync + Library
- silent migration of local bookmarks on login
- sync status UI and toast feedback
/libraryas a static shell hydrated client-side- owner and public shared library flows
Remaining Work
Stage 3 — GitHub OAuth
Superseded by the active spec: GitHub OAuth — Provider Selection. The original three bullets below understated the work; the spec is the source of truth.
- create a GitHub OAuth App and enable the provider in Supabase (dashboard-only, not tracked in
supabase/config.toml) - make the authorize URL provider-aware —
scopesandpromptare currently Google-specific - thread provider selection through the auth client, the login modal, and the nine call sites that hardcode
"google" - pass the real provider to
sign_in_started/sign_in_completedanalytics - decide and test account linking for same-email Google/GitHub users, and handle GitHub’s private-email case
- update callback, ToS, Privacy, and setup-doc copy that names Google as the only provider
Stage 4 — Plan Pro
- add entitlement model and billing integration
- checkout and webhook flows
- gated premium features and account/dashboard UX
Note
This roadmap became the foundation for later library, static-login, and sharing work, so it now lives under archive as historical planning context rather than the active implementation source of truth.