Next.js contact form, no API route
Yes, you can skip app/api and Server Actions. Post your Next.js form straight to your Formbold endpoint and each submission is stored and emailed to you. The Free plan covers 250 submissions a month across 10 forms.
What code do I paste into my Next.js app?
This client component. Save it as components/ContactForm.tsx, replace FORM_ID with the ID from your form's Form Setup tab, and render <ContactForm /> on any page. It works with the App Router, the Pages Router and static exports, because the browser talks to Formbold directly.
How do I add a contact form to Next.js?
If next dev is already running, this takes a few minutes.
Create a form
Sign up, open All Forms and click Create New Form. Free accounts can have 10 forms.
Copy the endpoint
Open the Form Setup tab and copy the URL that looks like https://formbold.com/s/FORM_ID. Paste it into the fetch call in the component.
Send a test
Run next dev, submit the form once and open Submissions. If nothing shows up, check the POST request in your browser's Network tab.
What you no longer have to build
Everything after the submit button: storage, email, spam checks and the apps your team already uses. Your Next.js code stays a plain client component.
No route handler to maintain
Nothing in app/api, no Server Action and no SMTP secrets in your environment. The component posts to one URL.
Spam checks you switch on
Turn on Basic Spam Filter in Settings > Spam & Security. For a fetch form like this one, add Custom reCAPTCHA with your own v2 keys.
File uploads from Starter
Starter takes 5 files of up to 10 MB per submission. Premium and Business take 10 files, up to 25 MB and 50 MB each.
11 apps and webhooks
On Starter and higher, send each entry to Slack, Notion, Google Sheets, HubSpot, Zapier, Make, a webhook and more.
What else do Next.js developers ask?
Server Actions, static exports and where the endpoint should live.
Still have a question?
The docs cover setup, framework guides, integrations and spam protection, step by step.