On this page
Update, 2 November 2026. Three of the four are now on the EmDash registry: Lead Delivery, Site Health & Broken Links and Content Approval. Install them from Registry in your EmDash admin. Since Lead Delivery 0.3.0, Connect this form connects a form in one step where the site can call its own address. Current versions are on each plugin’s page.
Four more plugins for EmDash are out, on npm: Lead Delivery, Site Health & Broken Links, Content Approval and Popups. Like SEO & Schema Markup and Analytics & Cookie Consent before them, each takes over one job on a live site, is free on as many sites as you like, needs no account and no key, and is open source under the MIT License.
All four need EmDash 1.3.0 or newer. None of them is in the EmDash registry yet, so a developer adds each one in the site’s code once. After that, everything is done in the admin.
Lead Delivery: every enquiry reaches you
Lead Delivery sends every enquiry from the official forms plugin where you work: to one or more email addresses, to HubSpot as a form submission, or to Zapier, Make, n8n or your own app as signed JSON. Each enquiry is logged, and one that does not get through is tried again 8 times over about two days. If it still fails, or a form that usually gets enquiries goes quiet for 3 days, the people who look after the site get an email.
What it does not do: there is no Mailchimp yet, and file attachments are not sent (they stay in Forms). EmDash’s form editor cannot yet be pointed at another plugin, so someone who looks after the site’s code connects each form once; the plugin writes the instructions for them.
npm install @moorage/plugin-lead-deliverySite Health & Broken Links: find it before a visitor does
Site Health checks your pages, your menu and the links to other sites, and lists what is broken, worst first: a dead link in the menu, a page that shows an error, a map that will not load because it comes over an insecure connection. Each row has a Fix menu. For a dead address on your own site, “Send visitors to another page” adds a redirect that fixes the link everywhere at once. You get an email at once when a page shows an error or a menu link breaks, and a weekly list of what is new.
Links to other sites are checked politely, a few a minute, and are called broken only when the other site says the page is gone twice, a day apart. Sites that turn checkers away, such as LinkedIn, are listed as “could not check”, never as broken. It does not rewrite the links inside your pages, and it gives no score. It needs EmDash’s scheduled tasks, which on Cloudflare means a Cron Trigger.
npm install @moorage/plugin-site-healthRead about Site Health & Broken Links.
Content Approval: a second person OKs it first
With Content Approval, writers keep pressing Publish. On the content types you tick, the publish is held and becomes a request. The approver sees what changed in words, such as “£3.20” becomes “£3.40”, then approves and publishes in one step, approves for later, or sends it back with a note. A text copy of each approved version is kept, and AI tools connected to the site always need a person’s OK.
It cannot hold what EmDash saves straight to a live page, such as the SEO panel or the tags of a page that is already live; its Settings tab lists these for your site. There are no comment threads and no chains of approvers. Nothing is held until an admin has saved the Settings tab once.
npm install @moorage/plugin-approvalsPopups: announcements that respect visitors
Popups adds a top bar for news such as opening hours, a slide-in for an offer, a popup with a sign-up form from Forms, and a box an editor places inside a page. The rules that keep popups bearable are built in and cannot be switched off: at most one per visit, never over the cookie banner, never while someone is typing, a sheet at the bottom on phones, and always a close button.
There are no A/B tests, countdowns or custom CSS: every popup shares one look, taken from your theme. Popups adds a script to pages, which sandboxed plugins may not do, so it is a native plugin and will not be in the registry.
npm install @moorage/plugin-popupsAlso out: Analytics & Cookie Consent 0.2.2
The cookie banner is now a sheet across the bottom of the screen, a round Cookies button lets visitors change their answer, and the page says whether the banner is still waiting, so Popups stays closed until the visitor has answered. Read about Analytics & Cookies.
Tell us what breaks
If something does not work as described, open an issue on GitHub or write to hello@moorage.dev.