Your forms deserve a real backend.
Collect, filter, and route form submissions with a simple API. Spam protection, email notifications, and contact management — no backend to build. Transfer ownership to clients when you're done.
// Submit a form to your inForm endpoint
const res = await fetch(
"https://inform.synergistic.io/api/f/YOUR_FORM_ID"
, { method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
name: "Jane",
email: "jane@company.co",
message: "Hello!"
}) });
// → { "ok": true, "id": "sub_k8f2m..." }
Features
Everything your forms need.
From spam filtering to team management — inForm handles the infrastructure so you can ship faster.
Spam filtering
Honeypot fields, gibberish detection, timing analysis, and rate limiting — all built-in, no CAPTCHAs required.
Email notifications
Admin alerts on every submission, confirmation emails to submitters, and per-field customization.
Contact management
Automatically create contacts from email fields. Add tags, notes, and keep a full submission history.
API-first
POST JSON from any framework — static HTML, React, Next.js, Vue, or a server-side proxy. Any schema, zero config.
Client handoff
Build the forms, then transfer ownership to your client with one click. They keep everything — submissions, contacts, and settings.
Teams & orgs
Invite team members, assign roles, and manage multiple client sites under one account. CORS locking per form included.
How it works
Three steps. That's it.
Create a form
Set up a form in the dashboard. Configure spam filters, notifications, and allowed origins.
Integrate
Point your frontend form at your unique endpoint. POST JSON or URL-encoded data — any framework works.
Manage & hand off
Review submissions, manage contacts, and get notified in real time. When the site is ready, transfer ownership to your client.
Integration
Works with any stack.
POST JSON from a static site, a React app, or a server-side proxy. inForm accepts any schema.
// app/api/contact/route.ts
import { NextResponse } from "next/server";
export async function POST(req: Request) {
const body = await req.json();
const res = await fetch(
`${process.env.INFORM_URL}/api/f/${process.env.FORM_ID}`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.INFORM_API_KEY}`,
},
body: JSON.stringify(body),
}
);
const data = await res.json();
return NextResponse.json(data, { status: res.status });
}// components/contact-form.tsx
"use client";
export function ContactForm() {
async function handleSubmit(e: React.FormEvent) {
e.preventDefault();
const form = e.target as HTMLFormElement;
const data = Object.fromEntries(new FormData(form));
await fetch("/api/contact", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
});
}
return (
<form onSubmit={handleSubmit}>
<input name="name" placeholder="Name" required />
<input name="email" type="email" required />
<textarea name="message" required />
<button type="submit">Send</button>
</form>
);
}Pricing
Simple, transparent pricing.
Start free. Upgrade when you need more.
Free
For side projects and personal sites.
- 100 submissions / month
- 1 form
- 1 team member
- Basic spam filtering
- Admin notifications
- 30-day data retention
- Contact management
- Priority support
Pro
For freelancers and growing businesses.
- 1,000 submissions / month
- 5 forms
- 3 team members
- Advanced spam filtering
- Admin + submitter notifications
- Unlimited data retention
- Contact management
- Priority email support
Business
For agencies and larger teams.
- 10,000 submissions / month
- Unlimited forms
- 10 team members
- Advanced spam filtering
- Admin + submitter notifications
- Unlimited data retention
- Contact management
- Dedicated support
FAQ
Common questions.
Start collecting submissions in minutes.
No credit card required. Free tier includes 100 submissions per month.
Get started free