Commit Graph

4 Commits

Author SHA1 Message Date
6668cc84fa fix: wrap useSearchParams in Suspense, add linux-musl prisma target
- useSearchParams() requires a Suspense boundary in Next.js App Router
- Prisma binaryTargets was missing linux-musl (alpine build environment)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 18:21:10 -08:00
c1e2761259 Fix Prisma schema: use only linux-musl-openssl-3.0.x binary target 2026-02-18 00:30:36 +00:00
1eb718cea6 Fix: add linux-musl-openssl-3.0.x binaryTarget for Alpine 3.21 (node:22-alpine) 2026-02-18 00:25:02 +00:00
bbb22f1c37 Switch from SuperTokens to NextAuth.js
BREAKING CHANGE: Replace SuperTokens with NextAuth.js

Why:
- SuperTokens had persistent Traefik routing issues
- SSL certificate not issuing correctly
- Complex infrastructure (separate container)
- NextAuth runs in Next.js app (simpler, no separate service)

Changes:
- Install next-auth, @auth/prisma-adapter, prisma
- Create NextAuth API route: app/api/auth/[...nextauth]/route.ts
- Add Prisma schema for NextAuth tables (users, sessions, accounts)
- Update auth page to use NextAuth signIn()
- Remove all SuperTokens code and dependencies
- Keep same Google OAuth (just simpler integration)

Benefits:
- No separate auth service needed
- No Traefik routing issues
- Sessions stored in Montreal PostgreSQL
- Simpler configuration
- Battle-tested, widely used

All authentication data stays in Montreal!

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 15:12:21 -08:00