The contact form at /contact renders and validates, but has no action — submitting it does nothing. There is no backend in this repo.
Until it is wired, the working paths on that page are the mailto link and the booking link.
Where: src/app/contact/page.tsx — the form is marked with a comment at the <form> element.
Fields: name, email, phone, message (all required).
What needs deciding
- Route handler or form service? A Next.js route handler keeps it in-repo but needs somewhere to send the mail from (Resend, Postmark, SES) and a secret to hold it. A hosted form service (Formspree, Web3Forms) needs no backend but adds a third party to the stack.
- Where submissions land. Currently
info@code.sydney, until Bluehex has its own address.
- Spam handling. A public form with no protection will get scraped. Turnstile or a honeypot.
Acceptance
- Submitting delivers the message somewhere a human reads.
- The form reports success and failure to the person filling it in, rather than silently doing nothing.
- No secret is required at build time —
next build must keep working without it, including on preview deployments.
The contact form at
/contactrenders and validates, but has noaction— submitting it does nothing. There is no backend in this repo.Until it is wired, the working paths on that page are the mailto link and the booking link.
Where:
src/app/contact/page.tsx— the form is marked with a comment at the<form>element.Fields: name, email, phone, message (all required).
What needs deciding
info@code.sydney, until Bluehex has its own address.Acceptance
next buildmust keep working without it, including on preview deployments.