Add a contact form to your AI-built site

You ask your AI for a contact form, and it adds one that works on the first deploy.

Your AI reads https://app.ammo.host/llms.txt and adds the form for you. You only have to ask it for a contact form.

Put this project online with ammo.host. Read https://app.ammo.host/llms.txt and follow it.

How it works

  1. Paste this line into your AI: Put this project online with ammo.host. Read https://app.ammo.host/llms.txt and follow it.
  2. Give it your email when it asks.
  3. Open the email from ammo.host. If the code matches, click Approve.
  4. Your AI puts the app online and replies with a link like app-3f9k2c.ammo.host. It opens on any phone.

What happens to a message

Every submission is saved and emailed to you.

Spam is blocked with a hidden field: people never see it, bots fill it in.

What your AI adds

A form like this one. You don't have to write it.

<form action="https://app.ammo.host/f/<app_slug>/contact" method="POST">
  <input type="text" name="_gotcha" tabindex="-1" autocomplete="off"
         aria-hidden="true" style="position:absolute;left:-9999px">
  <input type="hidden" name="_redirect" value="/thanks/">
  <label>Name <input type="text" name="name" required></label>
  <label>Email <input type="email" name="email" required></label>
  <label>Message <textarea name="message" required></textarea></label>
  <button type="submit">Send</button>
</form>
  • _gotcha is the spam trap. Leave it empty.
  • _redirect is the page on your site that people see after sending. It has to exist, for example /thanks/.
  • AMMO_APP_SLUG holds your app's slug when the app is built.
  • AMMO_FORMS_URL holds the full form address, https://app.ammo.host/f/<app_slug>. With these two, the form works on the first deploy.

What you get

If something crashes, it restarts a few times.

If an update breaks, roll back from your dashboard.

If your app saves data, it gets its own database, backed up every night and kept for 7 days.

You get a link like app-3f9k2c.ammo.host.

See pricing

For the curious

Each server app gets its own database. The docs explain how an app starts and how it reaches that database.