Skip to content
form koi.Start free

Forms for static websites

Forms for static websites.
No server functions needed.

Collect submissions from GitHub Pages, Cloudflare Pages, Vercel or any static host. Form Koi provides the form backend, submission inbox, spam protection and email notifications.

250 submissions/month free. No credit card required.

The host serves your site. We receive the form.

01

Your frontend stays yours

Use HTML, an Astro build, a React app, or a Next.js static export. Keep your CSS and fields; the browser can POST from any of them.

02

One endpoint to connect

Set the form action to the URL from your workspace. You do not need to add a server function to your hosting account.

03

Move hosts when you need to

Your form endpoint can stay the same. Update allowed origins when the website’s scheme or domain changes, then test from the new deployment.

A small form for a static page.

Replace the complete action URL, verify your recipient, and set an HTTPS thank-you destination in form settings. This example starts with a honeypot; copy your workspace’s updated markup when enabling Turnstile.

contact.html
<form action="https://api.formkoi.com/f/YOUR_PUBLIC_FORM_KEY" method="POST">
  <label for="name">Your name</label>
  <input id="name" name="name" autocomplete="name" required>

  <label for="email">Email address</label>
  <input id="email" name="email" type="email" autocomplete="email" required>

  <label for="message">Your message</label>
  <textarea id="message" name="message" required></textarea>

  <!-- Leave this hidden anti-spam field empty. -->
  <input type="text" name="botcheck"
    tabindex="-1" autocomplete="off" style="display:none" hidden>

  <button type="submit">Send message</button>
</form>

Want a styled starting point? Download a contact form template.

A few details for your hosting setup.

Where you hostWhat to check
GitHub PagesUse the full Form Koi endpoint. If your site lives under a repository subpath, include that path in your thank-you URL; allowed origins use only the scheme and host.
Cloudflare PagesTest your custom domain and preview domain separately. Configure the intended origins and Turnstile hostnames before enforcing protection.
VercelThe direct browser POST works for static pages and framework apps. A changing preview hostname may require a separate test form or explicit origin configuration.
Netlify or another static hostConnect the endpoint and remove any previous provider-specific form handler that would intercept submission. Recheck redirects, origins and spam settings.

Need file uploads or more submissions?

Start free with 250 submissions a month, spam protection and email delivery tracking. Pro adds private file uploads and 10,000 monthly submissions, shared across your forms, for $12/month or $120/year.

Collect project briefs and screenshots with 5 GiB of private storage included. Uploads require Pro: up to 3 files per submission, 5 MiB each and 10 MiB total. Extra usage is optional, with a monthly spending cap you choose.

Compare Free and Pro →

Frequently asked questions

Contact form
questions.

Does Form Koi host my website?

No. Keep your existing website host. Form Koi receives the form submission and handles the inbox and notification workflow.

Can my contact form work without JavaScript?

Yes, a native HTML POST works without a custom submit handler. If you enable Turnstile, its widget requires JavaScript. Inline feedback also needs a JavaScript handler.

Will changing hosts break my form?

The public form endpoint can stay the same. Check the website domain, allowed origins, Turnstile configuration and thank-you URL after a move. Test a submission from the new site before considering migration complete.

Can this keep a paused website online?

No. The host still needs to serve the page so visitors can open and submit the form. Form Koi handles submissions independently, but does not replace website hosting.

Start with Form Koi Free

Start receiving
form submissions.

Create a free form Read the quickstart