Frontend, platform, and glue code

POST to one URL. Get spam filtering, files, webhooks, and a dashboard your PM can actually open.

You were hired to ship product UI-not to babysit another serverless function that parses multipart, talks to SMTP, and silently drops messages when the runtime cold-starts. Formspring is the boring endpoint: your form action or fetch target, CORS configured per form, captcha optional, signed webhooks with replay, and MCP when you want agents to list submissions without inventing OAuth from scratch.

CORS per formSigned webhooks + replayScoped API tokensMCP for agents
Live walkthrough

Browser POST / fetch

Client

multipart/form-data or JSON - same endpoint

200 + thank-you

HTTP

Redirect or JSON body - your SPA handles either

Signed webhook

Worker

submission.created - verify HMAC, idempotent key

Delivery log

Obs

429 retried - replay from dashboard when fixed

MCP query

AI

Agent lists open submissions with scoped token

Rotate token

Sec

Old CI token revoked - least privilege preserved

What stays off your plate

  • No SMTP, no bucket ACL archaeology in v1.
  • CORS and captcha live next to the form config.
  • PM can open the submission without SSH.
Interface contract

What you can rely on without reading our marketing site twice

Row-level promises-not vibes. Docs and security pages back the boring stuff.

ContractFormspringNotes
IngressHosted POST/JSON endpoint, CORS and captcha scoped per form.Keep progressive enhancement and SPA paths on the same URL.
DeliverySigned webhooks, replay from UI, delivery logs on the submission row.See 429s and signature mismatches without tailing CloudWatch.
Auth for automationScoped API tokens; rotate without revoking your whole account session.
AgentsMCP surface to list and reason about submissions with real permissions.See /mcp for scope.
Residency narrativeEU hosting default; security page for reviewers who ask “where?”
Treat Formspring like infrastructure: observable handoffs, versionable contracts, and an API surface for the day marketing asks for “just one more integration.”

Hard limits

Not every workload belongs here

Contrarian but true: sometimes you should keep the hop on your origin.

  • If you need single-digit millisecond inline processing inside your request path, keep that on your origin-Formspring is network-hop capture, not co-located edge compute.
  • We are not a full CDP; expect to push enriched events onward via webhooks or your own workers.

Docs and workflows

Ground-truth links for implementation reviews.

Delete the contact-form Lambda. Keep the observability.

Start free, point staging at a real endpoint, and give support a dashboard the same day-not after you build logging.

Start freeRead the docs

·· no card · 50 submissions / mo · no countdown