How to Add a Working Contact Form to Your Replit App
Short answer: Give Replit Agent a prompt with your Form ID and a link to the Forminit skill guide. Replit builds the form UI, Forminit handles everything after submit — validation, storage, email notifications, file uploads, spam protection, and integrations. No database tables, no email service, no extra packages to configure.
Does Replit have built-in form handling?
No. Replit is a cloud development environment with an AI Agent that can scaffold full-stack apps. But when it comes to forms, Replit Agent typically reaches for a database (PostgreSQL or SQLite) to store submissions and suggests wiring up an email service like SendGrid or Resend for notifications.
That means you’re setting up a database schema, writing API routes, configuring an email provider, managing API keys, and maintaining all of it yourself. For a contact form. On a side project. That you built in 10 minutes with AI.
How Forminit solves this
Forminit is a headless form backend API. One service handles everything after submit: validation, storage, email notifications, file uploads, spam protection, webhooks, and integrations. No database, no email service, no API routes. Your Replit app stays clean — just the frontend.
Why Forminit works well with Replit
Replit Agent generates React, Next.js, HTML, or Node.js apps depending on your prompt. Forminit has skill guides for each of these stacks — so no matter what Replit scaffolds, the AI has the right integration reference. The skill guide tells the Agent exactly which SDK to use, how to name fields, and how to handle submissions.
| What you need | DIY approach in Replit | Forminit approach |
|---|---|---|
| Store form submissions | Set up database, write schema, create API routes | Already done (dashboard included) |
| Email notifications | Configure SendGrid/Resend, manage API keys | Built-in, one toggle in dashboard |
| Change notification email | Edit code and redeploy | Change in dashboard, no code |
| File uploads | Set up storage, handle multipart parsing | Built-in, up to 25MB |
| Spam protection | Build it yourself | reCAPTCHA, hCaptcha, honeypot |
| Team collaboration | Share Replit project or build admin panel | Role-based access (Owner, Admin, Member) |
| Autoresponder to submitter | Write custom email logic | Built-in, configurable in dashboard |
| Server-side validation | Write validation middleware | Automatic (typed field blocks) |
| UTM / attribution tracking | Build it yourself | Auto-captured by SDK |
| Services to manage | 2-3 (database + email + storage) | 1 (Forminit) |
How to set it up
Step 1: Create a form on Forminit
- Sign up at forminit.com
- Create a new form
- Go to Form Settings and set authentication mode to Public (for client-side apps) or Protected (if Replit scaffolds a backend)
- Copy your Form ID
Step 2: Prompt Replit Agent
Open Replit Agent and paste one of the prompts below. Pick the skill guide URL that matches the stack Replit generates for you:
| Stack | Skill guide URL |
|---|---|
| React (Vite) | https://forminit.com/skills/forminit-react/SKILL.md |
| Next.js | https://forminit.com/skills/forminit-nextjs/SKILL.md |
| HTML / static | https://forminit.com/skills/forminit-html/SKILL.md |
| Node.js backend | https://forminit.com/skills/forminit-nodejs/SKILL.md |
| Python (Flask/Django) | https://forminit.com/skills/forminit-python/SKILL.md |
Prompt examples
Contact form
Build me a contact form with name, email, and message fields. Connect it with Forminit for form submissions.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Waitlist / coming soon page
Build a coming soon landing page with a waitlist signup form. Collect email, full name, and a “What would you use this for?” textarea. Show a “You’re on the list!” success state. Connect form submissions with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
SaaS demo request form
Build a demo request form with first name, last name, work email, company name, phone, a company size select (1-10, 11-50, 51-200, 201-1000, 1000+), and a “What problem are you trying to solve?” textarea. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Freelancer project inquiry form
Build a project inquiry form for a freelancer portfolio site. Collect full name, email, a project type select (Website, Mobile App, Branding, UI/UX Design, Consulting, Other), a budget range radio ($1K-$5K, $5K-$15K, $15K-$50K, $50K+), a timeline select (ASAP, 1-2 months, 3-6 months, Flexible), and a project details textarea. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Job application form with file upload
Build a job application form with first name, last name, email, phone, a position select (Frontend Developer, Backend Developer, Designer, Product Manager, Marketing), a resume file upload (.pdf, .doc, .docx only), a portfolio URL field, and a “Why do you want to join us?” textarea. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Tattoo studio booking form
Build a tattoo appointment request form with full name, email, phone, a placement select (Arm, Leg, Back, Chest, Ribs, Neck, Hand, Other), a size radio (Small 2-4 inch, Medium 4-8 inch, Large 8+ inch, Full sleeve), a style select (Traditional, Japanese, Realism, Blackwork, Watercolor, Geometric, Minimalist, Lettering), a description textarea for the tattoo idea, and a reference image file upload (images only, multiple files). Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Yoga / wellness consultation form
Build a wellness consultation booking form with full name, email, phone, a service type select (Yoga Private Session, Group Class, Meditation Workshop, Nutrition Consultation, Wellness Retreat), an experience level radio (Beginner, Intermediate, Advanced), a preferred schedule checkbox group (Weekday Mornings, Weekday Evenings, Saturday, Sunday), a goals textarea, and a health conditions or injuries textarea. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Restaurant reservation form
Build a restaurant reservation form with full name, email, phone, a reservation date picker, a time select (12:00, 12:30, 13:00, …, 21:00, 21:30), a party size select (1-2, 3-4, 5-6, 7-8, 9+), a seating preference radio (Indoor, Outdoor, Bar, Private Dining), an occasion select (None, Birthday, Anniversary, Business, Date Night), and a dietary restrictions or special requests textarea. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Photography session inquiry form
Build a photography inquiry form with full name, email, phone, a session type select (Portrait, Wedding, Family, Newborn, Product, Real Estate, Event), a preferred date picker, a budget range radio ($200-$500, $500-$1000, $1000-$2000, $2000+), a location textarea, and a mood board / reference images file upload (images only, multiple files). Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Multi-step sales inquiry form
Build a multi-step sales inquiry form. Step 1: sender email, company name, phone number. Step 2: budget range (radio: $1K-$5K, $5K-$25K, $25K-$100K, $100K+), project timeline (select: This month, 1-3 months, 3-6 months, Not sure yet), and a project description textarea. Show a progress indicator between steps. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Personal trainer / fitness consultation form
Build a fitness consultation form with full name, email, phone, a fitness goal checkbox group (Weight Loss, Muscle Gain, Flexibility, Endurance, Injury Recovery, General Fitness), an activity level radio (Sedentary, 1-2 days/week, 3-4 days/week, 5+ days/week), a preferred training select (In-person, Online, Hybrid), and a medical conditions or limitations textarea. Connect it with Forminit.
formId:
<PASTE-YOUR-FORM-ID-HERE>Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
Using Replit with a backend (Next.js or Node.js)
If Replit Agent scaffolds a Next.js or Node.js app with a server, you can use the protected mode with an API key for higher rate limits (5 req/sec instead of 1 per 30 sec). Just swap the skill guide URL in your prompt:
Same prompt as above, but use this integration skill guide instead: https://forminit.com/skills/forminit-nextjs/SKILL.md
For Next.js, Forminit provides a built-in createForminitProxy that creates a server-side API route — the API key stays on the server, never exposed to the browser. Add your API key to Replit’s Secrets tab as FORMINIT_API_KEY.
What happens after a form is submitted?
Once a form is submitted, Forminit automatically:
- Validates all fields server-side (email format, phone format, file types)
- Stores the submission in your dashboard with an inbox-style UI
- Sends email notifications to you (configurable)
- Captures attribution data including UTM parameters, ad click IDs (gclid, fbclid, msclkid), referrer URL, and geolocation
- Forwards data to other services via webhooks, Zapier, Slack, or Discord
You can also set up autoresponders to automatically reply to the person who submitted the form.
Frequently asked questions
Why not just use a database in Replit for form submissions?
You can, but then you’re building a form backend from scratch — database schema, API routes, validation logic, email integration, file storage, admin dashboard. That’s a lot of maintenance for a contact form. Forminit handles all of it as a service so you can focus on your actual app.
Does Forminit work with any stack Replit generates?
Yes. Forminit has skill guides for React, Next.js, HTML, Node.js, and Python. Whatever Replit Agent scaffolds, there’s a matching guide. Check the skill guide table above and use the right URL in your prompt.
Can I use Forminit with Replit’s free plan?
Yes. Forminit’s client-side SDK works with any Replit plan. For public-mode forms you don’t even need environment variables — just a Form ID. Forminit also has a free tier with 25 submission credits to get started.
Can I customize the prompt to match my use case?
Absolutely. The prompt examples above are starting points. Describe your exact fields, layout, and behavior — Replit Agent will generate the UI, and the skill guide ensures the Forminit integration is wired correctly. You can ask for multi-step forms, conditional fields, custom validation messages, specific styling, or any pattern your stack supports.
What if Replit Agent generates the wrong field names?
Always include the skill guide URL in your prompt. Without it, the Agent may use generic names like name="email" instead of name="fi-sender-email", which means submissions arrive empty. If it still gets it wrong, paste the specific field naming section from the Form Blocks reference into the chat.
Does Forminit handle spam protection?
Yes. Forminit supports reCAPTCHA v3, hCaptcha (visible and invisible), and honeypot fields. Enable them from your form settings in the dashboard.
Further reading
- Forminit React Skill Guide - Skill guide for React apps
- Forminit Next.js Skill Guide - Skill guide for Next.js with server-side proxy
- Forminit HTML Skill Guide - Skill guide for static HTML sites
- Form Blocks Reference - All field types and naming conventions
- File Uploads Guide - Supported file types and size limits
- How to Add Forms to Lovable - Similar guide for Lovable users