How it works

    Forms in. Email out. Here's the path.

    mailnix is two products on one project: a forms backend with a real submissions inbox, and an email layer that sends through any provider with a trace per message. Use it from your AI agent, your server, or your browser.

    Start freeSee the product

    Path one: put a form on your site

    From designer to inbox in four steps.

    01

    Design it

    Build the form in the visual designer: fields, validation, conditional logic, themes, multi-step pages. Or let an AI assistant run form_create from the chat.

    02

    Publish it

    One click gives you a hosted page on forms.mailnix.ch, an iframe embed, or a script embed. Your site needs no backend, no database, no serverless function.

    03

    Read the inbox

    Every submission lands spam-scored, with statuses, CSV export, and per-form retention. Notification emails go to addresses you verified, immediate or as a digest.

    04

    Reply on purpose

    Answer any submission from the dashboard composer with a template rendered against its fields, or over MCP. mailnix never auto-emails the person who filled in your form.

    Path two: send email from your app

    Your provider, our pipeline.

    01

    Connect a destination

    Attach AWS SES, Postmark, Resend, SendGrid, Mailgun, or your webhoster's SMTP from a preset. New destinations start in sandbox mode: sends are captured, not relayed.

    02

    Verify your domain

    We hand you the exact SPF and DKIM records to publish. Recheck from the dashboard or MCP until the status flips to verified.

    03

    Send

    POST /v1/messages returns a trace_id immediately. Templates, idempotency keys, scheduled sends, and attachments ride the same endpoint. Promote the destination to live when you're ready.

    04

    Route and failover

    Routing rules pick the destination by from-domain, environment, or metadata. If the primary errors, the failover chain promotes the next destination automatically.

    05

    Watch every message

    Each send has a public-shareable trace. Outbound webhooks fire on delivered, bounced, complained, and failed, HMAC-signed with durable retry. One suppression list is enforced at send time across every destination.

    Three doors, one product

    From your agent, your server, or your browser.

    MCP

    From your AI agent

    An MCP server with 104 verb-noun tools. One call bootstraps a working bearer and a sandbox project with no signup; account_claim keeps the same token when you go live. Works in Claude, ChatGPT, and Cursor.

    REST

    From your server

    POST /v1/messages is a drop-in for the SendGrid, Postmark, and SES envelope shape. Swap the base URL and the bearer, keep your code, get a trace ID back.

    BROWSER

    From your browser

    Publishable mnxpub_ keys send straight from the page, gated server-side by origin lock, locked From, and rate caps. Form submissions need no key at all: the public endpoint is gated by an origin allowlist.

    Under the hood

    What happens on every send. And every submission.

    EVERY SEND

    Validate, route, relay, trace

    The request is validated and the recipient checked against the suppression list. Routing rules (or your destination_id) pick the destination; the provider attempt is recorded on the trace, and failures hand off to the failover chain. Provider delivery, bounce, and complaint webhooks append to the trace; your outbound webhooks fire after.

    EVERY SUBMISSION

    Gate, score, store, notify

    The Origin header is checked against the form's allowlist and sliding-window rate caps. Honeypot, fill-time, and spam scoring run on ingest: spam-folded entries never email you. Clean submissions land in the inbox and notify your verified addresses. Replies are per-submission, audited, and locked to the submitter's captured address.

    What people ship with it

    Three jobs, one account.

    01

    A form on a static site, tonight

    Contact, booking, signup, application. Design it, publish it, paste the embed. The submissions are stored, scored, and answerable, not just forwarded to your inbox.

    02

    Transactional email for a SaaS

    Receipts, resets, invites through the provider you choose. When a customer says the email never arrived, support pastes the trace URL instead of opening a ticket with engineering.

    03

    An AI agent that wires it all

    Claude, ChatGPT, or Cursor connects to the MCP server, gets a sandbox without a signup, builds the form, wires the provider, and hands you the finished setup to claim.

    One HTTP call to get started

    Put a form on your site tonight. Wire your provider when you're ready.