- AI builders
- Bolt.new
Bolt.new contact form not sending email?
Submit clears the fields or shows a thank-you message, and no email ever arrives. Bolt.new builds a whole front-end in the browser, including a contact page. What it builds is a form that looks right and, by default, has no mail server behind it.
Why it doesn’t send
A front-end project can render a form and collect input, but turning input into an email needs a server-side piece or a hosted service. Without one, the form’s handler is a stub.
The smallest fix is not code at all: give the form an action. A form with method POST and an action URL needs no JavaScript, so there is nothing to break between preview and deploy.
Paste this into Bolt.new
Paste it into the Bolt chat for your project. Bolt rewrites the form markup in place.
Make my contact form send submissions to FormRill at https://api.formrill.com/YOUR_FORM_ID/submit. Use a plain HTML form: set method="POST" and that URL as the action, and remove any onSubmit handler that calls preventDefault or fakes a success. Keep my existing fields and styling, name the email input "email", and add <input type="checkbox" name="botcheck" hidden /> as a honeypot. If the form submits with JavaScript, send FormData with fetch and the header Accept: application/json, show success only when the JSON response has ok: true, and show an error otherwise. Do not add a backend, API route, edge function, environment variables or API keys.
Replace YOUR_FORM_ID with the ID from your form URL after signup. After you sign up, your dashboard shows this prompt with your real form URL already filled in.
Bolt.new gotcha: The Bolt preview runs at a different address from your deployed site. If you turn on domain restrictions in FormRill, add your live domain, and send your real test from the deployed site.
What it produces
<form method="POST" action="https://api.formrill.com/YOUR_FORM_ID/submit">
<input type="checkbox" name="botcheck" hidden />
<input type="text" name="name" required />
<input type="email" name="email" required />
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>Three steps
- Sign up and copy your form URL; swap YOUR_FORM_ID in the prompt.
- Paste the prompt into Bolt and let it replace the form markup and remove the stub handler.
- Deploy, submit a test message from the live site and check your inbox.
Questions
Will it work in the Bolt preview and after I deploy?
A plain form POST is ordinary browser behaviour, so it does not depend on where the site is hosted. In FormRill you can also restrict which domains may submit once you are live.
Where does the visitor land after submitting?
You can set a thank-you redirect URL on the form in the dashboard, so visitors return to a page on your site.
Can I stay on the page instead?
Yes. Use a fetch call with Accept: application/json, as in the Lovable and v0 guides, and show your own message.
Is it free?
Yes, free for 500 submissions a month with no card needed. Compare plans.
Fix your Bolt.new form in one paste
Free up to 500 submissions a month and unlimited forms. No server, no credit card.
Start freeOther AI builders
- Lovable contact form fix
Lovable contact form shows “thanks” but no email arrives? Point it at a FormRill URL with one prompt. Free, no server or edge function to write.
- v0 contact form fix
v0 gave you a contact form that doesn’t send email? Wire its Next.js client component to FormRill with one prompt. Free plan, no API route needed.
- Cursor contact form fix
Cursor wrote your contact form but nothing arrives? A short rule or prompt points the form at FormRill, and curl lets you test it before you ship.
- All AI builders
The shared prompt and the full overview.