Signup is usually a route, until it isn’t
Bolt projects start with a real /signup or /register route: an email field, a password field, a submit button wired to Supabase auth or a server action. A later prompt that “cleans up the nav” or “makes onboarding a modal” deletes the route. The button on the homepage still says Sign up, and it does nothing, or it opens a dialog that throws.
Customers do not file a bug. They leave. The homepage status code stays 200.
What to confirm
Click Sign up in a private window. You want a page whose address changes, with an email input that you can type in. Do not create an account with a throwaway just to see the next step, unless you are willing to pollute the user table. A visible form is the check.
Heedza follows a Sign up link from the homepage and asserts that the email field is visible. It does not submit the form. If signup is only a modal with no URL, the check says it was not found, which is the cue to give it a real path.
Prompt
“Signup is broken. The homepage link should open a page with an email field and a password field, at a stable URL such as /signup. Do not submit the form. Do not restyle the rest of the app. If auth calls Supabase, keep the anon key and do not add the service role key to the client.”
If the form is there but create-user returns an error, that is a different fix: the auth provider, the redirect URL allowlist, or an RLS policy on a profile table. The prompt should quote the error from the network panel, not just say signup is broken.