← PluginsAvailable

Contact Forms

Contact forms and a submissions inbox, built into EmDash.

Build single-page forms in the EmDash admin, review or export submissions, and send notification emails. Embed registry forms in posts and pages with the optional native companion.

Features

  • Form builder

    Create and edit forms in the EmDash admin.

  • Embed anywhere

    Insert a form block in any post or page.

  • Submissions inbox

    Read, archive, delete and export to CSV.

  • Email notifications

    Sent through your site's email provider.

  • Spam protection

    A honeypot field and rate limiting on every form.

  • Retention

    Old submissions are cleaned up on a schedule.

Contact Forms gives EmDash a form builder and an inbox. Create a form in the admin, drop it into any post or page, and read, archive, export or delete what people send. Notifications go out through your site's email provider.

Built-in spam protection

Every form has a honeypot field and a per-visitor rate limit, so most junk never reaches your inbox.

Keep only what you need

Set a retention period and old submissions are deleted automatically each week. Export to CSV whenever you need a copy.

Install

Install Contact Forms from the EmDash registry, then add the website companion:

pnpm add @masonjames/emdash-contact-forms@^0.2.0

// astro.config.mjs
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { contactFormsEmbedPlugin } from "@masonjames/emdash-contact-forms/registry-embed";

export default defineConfig({
  integrations: [emdash({ plugins: [contactFormsEmbedPlugin()] })],
});

Build and deploy the site. Insert a Contact Form block and use the form ID from Plugins > Forms.

Questions

Do I need an email provider?

Only for notifications. Submissions are always saved in the inbox; to email them, install an email provider plugin such as EmDash SMTP.

Is there a sandboxed version?

Yes. Contact Forms 0.2.0 is live in the EmDash plugin registry with a sandboxed backend and Block Kit admin. Website rendering requires the optional native companion configured above. Existing native Contact Forms data is not automatically copied into registry storage.

More EmDash plugins

All plugins →