Back to Our Work

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
Formux landing page

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.

A responsive dashboard for form activity and recent work.

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.

Forms remain separate, searchable, and easy to monitor.

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.

Validation, redirects, and delivery settings in one view.

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.

A dedicated inbox for reviewing and organizing submissions.

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.

  1. 01

    Receive

    Accept JSON, URL-encoded forms, or multipart form data.

  2. 02

    Protect

    Apply rate limits, field validation, and layered spam checks.

  3. 03

    Store

    Save the message and usage update in one database transaction.

  4. 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