Workers · Email Sending · D1 · R2 · KV · Durable Objects · Queues · Workers AI

Describe the form.
Point it at an inbox.

EdgeForms is RegisterMySite’s Formspree-style backend for static sites. Accounts live in D1. The studio is Cloudflare’s llm-chat-app-template on Workers AI. Submissions land in R2 and leave through the Email Sending binding from forms@registermysite.com.

Sign up Open the form studio Sign in

01

Create an account

Email + password hashed with PBKDF2. Session cookies in KV. No third-party IdP.

02

Design with chat

Stream Llama 3.1 on Workers AI. The studio emits JSON schema and paste-ready HTML.

03

Set the destination

You choose the inbox. Verify that address as an Email Sending destination in the Cloudflare dashboard if the binding is restricted.

04

POST from anywhere

/f/:slug accepts HTML forms or JSON. CORS, honeypot, spam score, and a per-form Durable Object limiter.

Drop-in endpoint

Point any HTML form at your EdgeForms URL. No JavaScript, no backend.

  1. 1

    Create a form

    Sign up and publish a form in the dashboard.

    Create a free form
  2. 2

    Copy your endpoint

    https://forms.registermysite.com/f/your-slug

    Your slug is shown in the dashboard next to each form.

  3. 3

    Paste it into your site

    Drop the snippet into any page. Fields keep their names.

  • Any field name works — every field is saved and emailed.
  • _gotcha is a hidden spam trap; leave it empty.
  • Add a hidden _next field to send visitors to your own thank-you page.
  • Works with fetch() too — send Accept: application/json to get JSON back.

Nothing leaves the edge

No Formspree, no Mailgun key in the Worker. Email is env.EMAIL.send().

Owner dashboard

Change destination email, lock origins, pause a slug, read the R2 archive, resend mail.