Tutorial

Send form data with Formspree

A free no-code service that sends your contact form submissions straight to your email — no backend, no database, no server setup.

1

Create a free Formspree account

Go to formspree.io and sign up with your email. The free tier lets you receive up to 50 submissions per month — plenty for a student portfolio or small project.

Tip: Use the same email where you actually want to read the messages — that's the inbox Formspree will deliver to.
2

Create a new form

In your Formspree dashboard, click New Form. Give it a name like Portfolio Contact and confirm the email where submissions should go.

Formspree gives you a unique endpoint URL that looks like this:

https://formspree.io/f/mvgzjqbz

That random string at the end (mvgzjqbz) is your form ID. Copy the full URL — you'll paste it into your HTML next.

3

Add the form to your HTML

Paste your Formspree URL into the action attribute of a standard HTML form. Formspree reads all name attributes and forwards them as fields in the email.

<form action="https://formspree.io/f/mvgzjqbz" method="POST">

  <label for="name">Name:</label>
  <input type="text" id="name" name="name" required>

  <!-- This email field is REQUIRED by Formspree -->
  <label for="email">Email:</label>
  <input type="email" id="email" name="email" required>

  <label for="subject">Subject:</label>
  <input type="text" id="subject" name="subject" required>

  <label for="message">Message:</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <button type="submit">Send Message</button>
</form>
Important: The name="email" field is required. Formspree uses it as the "Reply-To" address, so when you reply to the notification email, it goes directly to the person who filled out the form.
4

Confirm your email (first time only)

The very first time someone submits your form, Formspree sends a confirmation email to your inbox. Click the link inside it to activate the form. After that, all future submissions go through automatically.

5

Test it yourself

Submit the form below — this page uses a real Formspree endpoint so you can see the flow end to end. Check your email after submitting.

6

Customize Formspree behavior (optional)

Add hidden fields to control how Formspree handles each submission:

<!-- Set a custom email subject -->
<input type="hidden" name="_subject" value="New message from my portfolio!">

<!-- Redirect after submit -->
<input type="hidden" name="_next" value="https://yoursite.com/thanks.html">

<!-- Honeypot spam filter (leave value empty) -->
<input type="text" name="_gotcha" style="display:none">

That's the whole thing.

Sign up → create form → paste URL into action → confirm your email → done. No backend, no PHP, no server — just HTML and a free account.