Contact forms without an email SDK.

Post your form straight to an endpoint. No script, no keys in your code, and every submission kept and labeled lead, review, spam, junk, or bot. 500 screened submissions a month free.

See pricing
No SDK or keys in your codeEvery submission keptNo CAPTCHA for visitors

Published Updated

1<!-- Form action, no code -->
2<form
3action="goodinbound.com/f/acme"
4method="post">
5<input name="email" />
6<textarea name="message" />
7<button>Book a demo</button>
8</form>

GoodInbound vs EmailJS

FeatureGoodInboundEmailJS
Free volume per month
500 submissions, screened
200 emails
Entry paid plan
$29/mo for 2,500
$9/mo for 2,000
Plain HTML form, no script
Keys in your front-end code
None
Public key
Submission history
Every one, in an inbox
7 days (30 on paid)
Spam protection
Screening, no CAPTCHA
Optional reCAPTCHA v2
Catches sales pitches from real people
On Pro
Label and reason on every submission

Based on each product’s public plans and docs. Features change, so check their latest if you are unsure.

Why people switch from EmailJS

EmailJS sends an email from the browser with its SDK, a template, and a public key in your code. The free plan covers 200 requests a month with 7 days of history, and spam protection is an optional reCAPTCHA v2 on each template. It sends whatever the form holds, so bot fills and sales pitches both reach your inbox. GoodInbound takes a plain form post, keeps every submission, and labels each one with a reason.

A form action, not an SDK

Point your form's action at GoodInbound. It works with plain HTML and any framework, with or without JavaScript, and there's no key to manage.

Submissions you can find later

Every submission is stored with its label and reason, instead of going out as an email and leaving a log that expires.

Screened before you're notified

Behavior, network, identity, and on Pro the message itself are checked first. Visitors never see a CAPTCHA.

EmailJS is handy for sending templated emails from the browser. For a contact form, GoodInbound gives you a stored, screened inbox without an SDK.

Free for almost every use case

Unlimited projects on every plan. Pro adds advanced screening, enrichment, and analytics, with extra seats, contacts, and monthly submission packs when you grow.

MonthlyAnnual 2 months free

Free

Free, spam-filtered contact forms with notifications and workflows.

$0/month

Included features:

  • 500 screened submissions / month
  • 500 contacts
  • 250 workflow runs / month
  • 1 seat
  • Basic screening
  • Unlimited projects, forms, and booking pages
  • Custom CSS and branding removal
  • REST API and MCP access
  • Contact enrichment
  • Analytics

Pro

Advanced spam screening and bigger limits.

$29/month

Everything in Free, plus:

  • 2,500 screened submissions / month
  • 5,000 contacts
  • 5,000 workflow runs / month
  • 3 seats
  • Advanced screening
  • Contact enrichment
  • Analytics with 12-month history
  • Extra seats at $19/seat/mo
  • +3,000 contacts for $30/mo
  • +3,000 screened submissions for $30/mo

Enterprise

For headless volume, security reviews, and custom scale.

Custom

Everything in Pro, plus:

  • Volume pricing
  • SSO and SCIM
  • GDPR DPA and security review
  • EU data residency
  • Custom data retention
  • 99.9% uptime SLA
  • Priority support
  • Invoice billing
  • Onboarding and custom implementations

Moving from EmailJS

Ingest, qualify and enrich leads with GoodInbound

Talk to sales