Product case study
Formux.io
A complete form backend for teams that need reliable submissions, without building another server.
- Scope
- Product design and development
- Frontend
- React, TanStack, Tailwind
- Backend
- Go, PostgreSQL, Stripe
The challenge
A small form creates a large backend problem.
A contact form looks simple until it needs storage, validation, spam protection, notifications, redirects, and a place to review each message.
Formux brings that work into one product. A developer adds a hosted endpoint to the frontend, while the team manages forms and submissions through a responsive dashboard.
Product decisions
A short path from setup to response.
The interface follows the work users need to do: understand what is happening, create a form, control its behavior, and process the messages that arrive.
01 / Overview
Start with what needs attention
The dashboard keeps the important signals in one place: active forms, response volume, conversion rate, and unread messages. Recent forms stay close so users can move from an overview to a specific inbox without searching.
02 / Structure
One endpoint for each form
Every form gets a public submission endpoint, its own inbox, and its own settings. This keeps a client contact form separate from a product waitlist while giving both the same simple integration model.
03 / Control
Flexible by default, strict when needed
Standard validation accepts any set of fields. Strict validation lets users define required fields and types such as email, URL, date, phone, and honeypot. Each form can also control redirects and notification recipients.
04 / Workflow
An inbox built for decisions
Submissions can be marked as read, converted, spam, or trash. Category counts, message details, pagination, and bulk actions turn the inbox into a working queue instead of a passive list of messages.
Behind the interface
One request, handled end to end.
The Go API protects and validates every public submission before it reaches the inbox. Browser forms and application clients then get the response format they expect.
- 01
Receive
Accept JSON, URL-encoded forms, or multipart form data.
- 02
Protect
Apply rate limits, field validation, and layered spam checks.
- 03
Store
Save the message and usage update in one database transaction.
- 04
Deliver
Return JSON or redirect the browser, then send notifications.
Shipped scope
More than a submission endpoint.
- Email and OAuth authentication
- Form endpoints and configurable fields
- Standard and strict validation
- Spam filtering and request limits
- Submission inbox and bulk actions
- Email notifications and usage warnings
- Stripe subscription management
- Responsive public and private interfaces
Work with Basewind
Have a product that needs this level of care?
We design and build custom web products from the first interface to the systems that keep them running.
Start a project