Auth & Roles
anymrkt uses NextAuth v5 with Google OAuth and credentials sign-in. Roles are stored in the Supabase profiles table, not in the JWT.
Roles
| Role | Description |
|---|---|
| buyer | Browsing and purchasing listings. |
| seller_pending | Brand created; onboarding in progress. |
| seller_active | Brand fully onboarded; can list, sell, use tools. |
| operator | Platform admin via is_operator() RLS helper. |
Server-side ownership checks
All seller API routes must verify ownership + role server-side. Never trust client-sent IDs.
Sending mail
Check email configuration from the admin panel, not by reading env vars. The app uses Resend for outbound email.