nintact
Install

One line, wherever your site lives.

No DNS records, no SMTP account, no server. Get a YOUR_FORM_ID by running npx nintact init or by signing up.

Plain HTML

Drop this where the form should appear. It renders in place — not in an iframe.

<script src="https://nintact.com/embed.js"
        data-nintact="YOUR_FORM_ID" async></script>

You already have a form

Keep your markup and styles. Only the action changes.

<form action="https://nintact.com/api/f/YOUR_FORM_ID" method="POST">
  <input name="name" required>
  <input name="email" type="email" required>
  <textarea name="message" required></textarea>
  <button type="submit">Send</button>
</form>

Next.js / React

Works in the App Router with no server code. Static export is fine.

// npm i nintact
import { NintactForm } from "nintact/react";

export default function Contact() {
  return <NintactForm formId="YOUR_FORM_ID" />;
}

Your own form (fetch)

The endpoint is public and CORS-open by design. Never put an API key in client code — you do not need one here.

await fetch("https://nintact.com/api/f/YOUR_FORM_ID", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name, email, message }),
});

Astro / Nuxt / SvelteKit

Static output is fine. There is no server and no SMTP account involved.

<!-- .astro / .vue / .svelte template -->
<script src="https://nintact.com/embed.js"
        data-nintact="YOUR_FORM_ID" async></script>

WordPress

Custom HTML block. No plugin.

<script src="https://nintact.com/embed.js"
        data-nintact="YOUR_FORM_ID" async></script>

Framer / Webflow / Wix / STUDIO

Use the embed or custom-code block.

<div data-nintact="YOUR_FORM_ID"></div>
<script src="https://nintact.com/embed.js" async></script>

From the terminal

npx nintact init          # create a form, print the snippet
npx nintact messages      # read what came in

# MCP (Claude Desktop, Cursor, …)
npx nintact-mcp

Authentication is a six-digit code by email — no browser round trip. Everything the dashboard can do is in the API, described for agents at /llms.txt.

Check whether your current form even delivers

We read the live SPF, DKIM, DMARC and MX records for your domain and tell you what is missing. No account needed.

Run the check