This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
"Forgot password?" (/forgot-password) and "Change password" (/update-password) are linked from the Sign In card. Both always start by asking for an email or username and send a link by email; the new password is only set from that link. A signed-in "change password" belongs on the settings page.
Supabase setup this relies on:
- Reset password email template (Authentication → Emails → Reset password). Point the link at the update page with the token hash:
Make sure Site URL (Authentication → URL Configuration) matches where the app runs.
<a href="{{ .SiteURL }}/update-password?token_hash={{ .TokenHash }}&type=recovery">Reset your password</a>
SUPABASE_SECRET_KEYin.env.local(Project Settings → API Keys → secret key). It is only used server side, inapp/api/password/reset/route.ts, to find the email for a username. Without it, email addresses still work but usernames won't send anything.