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.
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.
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>
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.
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.
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.
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.