New: Introducing the Forminit Python SDK ->
Back to all posts

How to Add a Working Contact Form to Your Replit App

By Forminit in Guides • Published March 14, 2026

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 needDIY approach in ReplitForminit approach
Store form submissionsSet up database, write schema, create API routesAlready done (dashboard included)
Email notificationsConfigure SendGrid/Resend, manage API keysBuilt-in, one toggle in dashboard
Change notification emailEdit code and redeployChange in dashboard, no code
File uploadsSet up storage, handle multipart parsingBuilt-in, up to 25MB
Spam protectionBuild it yourselfreCAPTCHA, hCaptcha, honeypot
Team collaborationShare Replit project or build admin panelRole-based access (Owner, Admin, Member)
Autoresponder to submitterWrite custom email logicBuilt-in, configurable in dashboard
Server-side validationWrite validation middlewareAutomatic (typed field blocks)
UTM / attribution trackingBuild it yourselfAuto-captured by SDK
Services to manage2-3 (database + email + storage)1 (Forminit)

How to set it up

Step 1: Create a form on Forminit

  1. Sign up at forminit.com
  2. Create a new form
  3. Go to Form Settings and set authentication mode to Public (for client-side apps) or Protected (if Replit scaffolds a backend)
  4. 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:

StackSkill guide URL
React (Vite)https://forminit.com/skills/forminit-react/SKILL.md
Next.jshttps://forminit.com/skills/forminit-nextjs/SKILL.md
HTML / statichttps://forminit.com/skills/forminit-html/SKILL.md
Node.js backendhttps://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:

  1. Validates all fields server-side (email format, phone format, file types)
  2. Stores the submission in your dashboard with an inbox-style UI
  3. Sends email notifications to you (configurable)
  4. Captures attribution data including UTM parameters, ad click IDs (gclid, fbclid, msclkid), referrer URL, and geolocation
  5. 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