How auth emails work in a Bolt app
Bolt’s built-in database includes authentication: email sign-up and Continue with Google. When someone signs up, asks for a password reset or a magic link, the email is sent by the database’s auth service (Bolt’s docs say its templates are powered by Supabase), and its link is built from your Site URL and redirect list.
Test every auth email in five minutes
- Turn on confirmation. Open the database icon, then Authentication → Email, and switch on Require users to confirm their email after signing up if your app should check addresses.
- Publish, then create an address in Proxy Mail QA, with a generated persona if your form asks for a name.
- Sign up on the published app, not only in the preview.
- Use the link or code from the row. A confirmation link becomes an Activate account button; codes get a Copy button.
- Then test the rest: sign out, reset the password, sign in with the new one, and save it on the row.
The two settings to check
1. Site URL and redirects. Under Advanced Authentication options, the Site URL should be your published address and the URI allow list should include every address your app runs on. If a reset link lands on localhost:3000, this is why. Proxy Mail QA flags links that go to a local address, including ones that only redirect there after verifying. Full guide.
2. The email template. Edit email templates lets you change each email’s subject and body. If you add a 6-digit code to the template, the row shows it with a Copy button; if you keep the link, it shows as a button named for what it does.
Copy-paste prompts for Bolt
Paste these into Bolt’s chat. Then test again with a fresh address.
List every email this app sends: sign-up confirmation, magic link, password reset, invite and email change. For each, tell me what triggers it, which URL its link points to, and how long its link or code stays valid. Flag anything that uses localhost.
Make every auth email link back to the published app, not localhost. Use the current site's address for the sign-up and password-reset redirects, and make sure the published address is in the authentication redirect list.
After a password reset, send the user to a page where they choose a new password, then sign them in. Show a clear message if the reset link has expired or was already used.