← PluginsAvailable

Contact Forms

Contact forms and a submissions inbox, built into EmDash.

Build forms in the EmDash admin, embed them in any post or page, and review, export or email submissions, with honeypot spam protection and rate limiting.

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

pnpm add @masonjames/emdash-contact-forms

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

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

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?

The core package, with the backend and a Block Kit admin, is being prepared for the EmDash plugin registry. Form rendering stays in the npm package.

More EmDash plugins

All plugins →