FRAMEWORK
Add a form backend to Express without a route
Formstork is the backend that receives your form's POST. It emails you every submission, sets the visitor's email as the reply-to, and stores each one in a searchable dashboard, so you skip the Express route, nodemailer, and storage.
How it works
In a normal Express setup, a contact form means a POST route, body parsing with express.urlencoded(), a mail transport like nodemailer to send the email, and somewhere to store the message. Formstork replaces that whole path. You serve a plain HTML form (for example with express.static or res.sendFile) whose action points at a Formstork endpoint and add your access key as a hidden field, and Formstork emails you each submission, sets the visitor's email as the reply-to, and saves the message to a searchable, taggable dashboard. Because the form posts to an external endpoint rather than back to your app, you write no submission route at all. Express can still do all of this itself if you want to own the code, but Formstork removes the email sending, storage, and spam filtering you would otherwise write and maintain. If you prefer to keep the request server-side, a route can forward it to Formstork with fetch().
<!-- public/contact.html -->
<!-- Served by Express (e.g. app.use(express.static('public'))). It posts -->
<!-- straight to Formstork, so you write no submission route in Express. -->
<form action="https://api.formstork.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<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>No route, nodemailer, or spam code
An Express contact form usually needs a POST route, express.urlencoded() to parse the body, nodemailer to send the mail, and storage for the message. Formstork is the hosted backend that does all of that, so there is nothing for you to write or maintain in your app. You can still forward server-side with fetch() if you want to keep the request in a route.
Reply straight from your inbox
Every submission emails you with the visitor's address set as the reply-to, so you hit reply and it reaches the person who wrote in. Beyond email, each message is kept in a searchable, taggable dashboard you can filter and export to CSV or JSON.
Spam stopped before it reaches you
A hidden honeypot, a server-side content filter, and optional Turnstile, hCaptcha, or reCAPTCHA keep bots out. Flagged submissions never email you, and a rules engine can route, block, or redirect based on a field value.
Set it up
- 1Create a plain HTML form with the fields you want, such as name, email, and message, and serve it from Express with express.static or res.sendFile.
- 2Set the form's action to https://api.formstork.com/submit with method POST, and add your access key as a hidden access_key input. You write no submission route, because the form posts to Formstork, not back to your Express app.
- 3Submit once to test. The submission lands in your inbox and your Formstork dashboard, with the visitor's email set as the reply-to.
- 4Optional: connect an integration like Slack, Google Sheets, or a signed webhook, turn on spam protection, or (on a paid plan) add an autoresponder or file uploads.
Frequently asked questions
Do I need a POST route in Express for the form?
No. The form posts to an external endpoint (Formstork), not back to your Express app, so you write no submission route. Serving the static HTML form is all Express does.
Can I still handle the form in an Express route?
Yes. If you want the request to stay server-side, post the form to your own route, parse it with express.urlencoded(), and forward it to Formstork with fetch(). Formstork still handles the email, storage, and spam filtering. Posting the HTML form directly is simpler and needs no route.
Is it free?
Yes, the free plan includes 250 submissions a month with a full dashboard and 90-day retention, no credit card. Paid plans add more volume, forever retention, autoresponders, and file uploads or attachments.
Try Formstork free
250 submissions a month with a full dashboard. No credit card required.
Get your access keyRead the docs