← All guides

Bolt guide

Bolt form backend powered by Formserve

Connect a Bolt-generated website form without building a backend API.

No backend API route Honeypot spam trap Works with any host

Overview

What you are building

Bolt.new is strong for shipping a site quickly, but the generated form still needs a reliable submissions backend. Formserve gives the form a real POST destination while keeping the generated layout, styles, and frontend structure intact.

Requirements

Before you start

Existing Bolt form UI

Use the generated form that already exists in the Bolt project.

Endpoint URL

Create a Formserve endpoint first and use the real public URL in the prompt or code edit.

Field names

Make sure visible form fields still render meaningful name attributes.

Live test

Test the generated site after deployment, not only in preview.

Setup steps

Connect the form

1

Start from the generated page

Do not replace the form or redesign the section. Keep the generated Bolt output and only fix form submission behavior.

2

Point the form to Formserve

Use a direct POST flow with the endpoint URL and include _honeypot as a hidden field.

3

Keep friendly feedback

Add or preserve loading, success, and failure states so the site still feels polished.

4

Test from Bolt preview and live deploy

Send a test submission from the live URL and verify it appears in Formserve.

Code

Minimal HTML contract

Every framework eventually sends these same fields. If your tool generates a component, ask it to preserve styling and only adjust the submission behavior.

<form action="https://formserve.io/f/YOUR_ENDPOINT_KEY" method="POST">
  <input type="text" name="_honeypot" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px" />
  <input type="text" name="name" required />
  <input type="email" name="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Send message</button>
</form>

Testing checklist

  • Preserve the generated Bolt layout and spacing.
  • Check every field has a name attribute.
  • Configure allowed domains before the final test.
  • Confirm the inbox receives the submission with the correct field values.

Common mistakes

  • ! Replacing the whole generated component instead of patching submission behavior.
  • ! Omitting _honeypot.
  • ! Using placeholder success text that never waits for the real request.
  • ! Not validating the final live deploy.