How it attaches
Two ways in, and one recipe for React
Pick by what your platform allows. Most allow the first.
1. Script embed Recommended
<script src="https://mapleworksuite.com/api/forms/v1/embed.js"
data-form-id="123"
data-mode="inline"
data-theme="inherit"></script>
2. Frame embed Fallback
<iframe src="https://mapleworksuite.com/api/forms/v1/frame.php?form_id=123"
style="width:100%;height:900px;border:0;"
title="Form" loading="lazy"></iframe>
A hand-written frame cannot measure itself, so set a height or the form gets clipped. The script embed with
data-mode="iframe" gives you isolation and automatic sizing together.3. The React recipe For AI builders
import { useEffect, useRef } from "react";
export default function MapleForm({ formId = 123 }) {
const box = useRef(null);
useEffect(() => {
const SRC = "https://mapleworksuite.com/api/forms/v1/embed.js";
const mount = () => window.MapleForms?.render({ formId, target: box.current });
let s = document.querySelector(`script[src="${SRC}"]`);
if (window.MapleForms) { mount(); return; }
if (!s) { s = document.createElement("script"); s.src = SRC; s.async = true; document.body.appendChild(s); }
s.addEventListener("load", mount);
return () => s.removeEventListener("load", mount);
}, [formId]);
return <div ref={box} />;
}
Step by step
Guides for every platform
Grouped by what kind of tool you build with.
AI app builders
Lovable Script embed
- In MapleForms open your form, go to Embed, and copy the form ID from the snippet.
- In Lovable, open the chat and ask it to create a component named MapleForm.jsx.
- Paste the React recipe above as the file contents. Lovable will accept it verbatim.
- Ask Lovable to render <MapleForm /> on the page you want, for example the contact section.
- Press Preview. The form renders inside your layout, not in a box.
- Publish. Submissions appear under Forms then Submissions in MapleWorkSuite.
Watch out. Do not paste the plain script tag into a Lovable page. React strips script tags from JSX and it will silently render nothing. Use the component.
Bolt.new (StackBlitz) Script embed
- Copy your form ID from the MapleForms Embed page.
- In Bolt, ask it to add a component file MapleForm.jsx and paste the React recipe.
- Ask Bolt to import and place <MapleForm /> where you want the form.
- The WebContainer preview loads our embed.js over HTTPS, so it works in preview.
- Deploy to Netlify or your own host from Bolt.
Watch out. Bolt sometimes rewrites imports on regeneration. If the form vanishes after a follow-up prompt, check the component is still imported.
v0 by Vercel Script embed
- Copy your form ID from the MapleForms Embed page.
- In v0, add a new component and paste the React recipe.
- If the project is Next.js App Router, add "use client" as the very first line of the file.
- Place the component in your page and deploy to Vercel.
Watch out. Next.js Server Components cannot use useEffect. Without "use client" the build fails. This is the number one v0 failure.
Replit Agent Script or frame
- Copy your form ID from the MapleForms Embed page.
- For a plain HTML project, paste the script snippet where the form belongs.
- For a React project, use the React recipe instead.
- Run the repl. The form renders in the webview.
Base44 Script or frame
- Copy your form ID from the MapleForms Embed page.
- Add a custom code or HTML block to the page.
- Paste the script snippet. If the block is React based, use the React recipe.
- Preview, then publish.
Watch out. If the builder wraps your block in its own iframe, switch data-mode to iframe so our sizing logic takes over.
Cursor / Windsurf Script or frame
- Copy your form ID from the MapleForms Embed page.
- Tell the assistant to embed the MapleForms script in the target template or component.
- Use the React recipe for JSX files and the plain script tag for HTML templates.
AI and drag-drop website builders
Wix (incl. AI Site Builder) Frame embed
- Copy your form ID from the MapleForms Embed page.
- In the Wix editor choose Add, then Embed, then Embed HTML.
- Pick Code and paste the iframe snippet, not the script snippet.
- Drag the widget to the height the form needs. Wix will not autosize it.
- Publish.
Watch out. The Wix HTML widget is itself an iframe, so a script embed would nest an iframe inside an iframe and lose autosizing entirely. Go straight to the iframe snippet and set the height by hand.
Squarespace (incl. Blueprint AI) Script or frame
- Copy your form ID from the MapleForms Embed page.
- Edit the page, add a block, and choose Code.
- Set the block type to HTML and paste the script snippet.
- Save. Code blocks do not execute in the editor preview, so use Preview or the live site to check it.
Watch out. On Personal plans the Code block is unavailable. There is no workaround inside Squarespace short of upgrading.
Framer Script or frame
- Copy your form ID from the MapleForms Embed page.
- Insert an Embed element and choose HTML.
- Paste the script snippet and set the element to a fixed height, or use Site Settings then Custom Code for a site-wide script.
- Publish.
Watch out. Framer embeds do not resize to their content. Give the element a generous height or use data-mode="iframe".
Webflow Script or frame
- Copy your form ID from the MapleForms Embed page.
- Drag an Embed element onto the page.
- Paste the script snippet and save.
- Embeds do not run in the Designer canvas. Use Preview or publish to staging to verify.
Durable Frame embed
- Copy your form ID from the MapleForms Embed page.
- Add a custom HTML or embed section to the page.
- Paste the iframe snippet with an explicit height.
- Publish.
Watch out. Durable restricts scripts on some plans. Lead with the iframe snippet.
Hostinger Horizons / AI Builder Script or frame
- Copy your form ID from the MapleForms Embed page.
- Add an Embed or Custom HTML block where the form belongs.
- Paste the script snippet.
- Publish.
GoDaddy Airo / Website Builder Frame embed
- Copy your form ID from the MapleForms Embed page.
- Add an HTML section to the page.
- Paste the iframe snippet with an explicit height.
- Publish.
Watch out. GoDaddy sanitises some inline scripts. The iframe is the reliable route.
10Web AI Builder (WordPress) Script embed
- Copy your form ID from the MapleForms Embed page.
- Edit the page and add a Custom HTML block, or an Elementor HTML widget.
- Paste the script snippet.
- Update the page.
Dorik AI Script or frame
- Copy your form ID from the MapleForms Embed page.
- Add an Embed or Custom Code element.
- Paste the script snippet.
- Publish.
CMS and no-code platforms
WordPress (self-hosted) Script embed
- Copy your form ID from the MapleForms Embed page.
- Edit the page and add a Custom HTML block.
- Paste the script snippet.
- Update. View the live page, since the block editor will not run the script.
Watch out. On WordPress.com only Business plans and above permit arbitrary scripts. Use the iframe snippet on lower tiers.
Shopify Script embed
- Copy your form ID from the MapleForms Embed page.
- In the theme editor add a Custom Liquid section to the page.
- Paste the script snippet into the Custom Liquid block.
- Save and preview.
Watch out. Do not put this in checkout. Shopify blocks third-party scripts on checkout pages outside Plus.
Ghost Script embed
- Copy your form ID from the MapleForms Embed page.
- In the editor press plus and choose HTML.
- Paste the script snippet.
- Publish or update the post.
Carrd Script or frame
- Copy your form ID from the MapleForms Embed page.
- Add an Embed element and set type to Code.
- Paste the script snippet and set the embed to Contained.
- Publish.
Watch out. Free Carrd has no embed element. Pro is required.
Notion Frame embed
- Copy your form ID from the MapleForms Embed page.
- Build the frame URL: https://mapleworksuite.com/api/forms/v1/frame.php?form_id=YOUR_ID
- In Notion type /embed, paste that URL, and choose Embed link.
- Drag the bottom edge to give the form enough height.
Watch out. Notion runs no third-party JavaScript at all, so only the frame URL works. It also will not autosize, so set the height manually.
Google Sites Frame embed
- Copy your form ID from the MapleForms Embed page.
- Choose Insert, then Embed, then By URL.
- Paste https://mapleworksuite.com/api/forms/v1/frame.php?form_id=YOUR_ID
- Resize the placed element to fit the form.
Watch out. Google Sites strips scripts. Embed by URL is the only path, and the element does not autosize.
Softr Script or frame
- Copy your form ID from the MapleForms Embed page.
- Add a Custom Code block to the page.
- Paste the script snippet.
- Publish.
Bubble Script or frame
- Copy your form ID from the MapleForms Embed page.
- Drop an HTML element onto the page.
- Paste the script snippet.
- Tick the option to allow the element to grow, or set a fixed height.
- Preview, then deploy to live.
Watch out. Bubble HTML elements default to a fixed height and will clip the form.
Super.so Script embed
- Copy your form ID from the MapleForms Embed page.
- In Super, open Settings then Code and add the script to the head or body.
- Add a target div in your Notion page and set data-target to it.
- Publish.
Watch out. Because Super renders a Notion page, a plain script has no obvious mount point. Use data-target with a selector you control.
Typedream Script or frame
- Copy your form ID from the MapleForms Embed page.
- Add an Embed or Code block.
- Paste the script snippet.
- Publish.
Weebly / Jimdo Frame embed
- Copy your form ID from the MapleForms Embed page.
- Drag an Embed Code or Custom HTML element onto the page.
- Paste the iframe snippet with an explicit height.
- Publish.
Frameworks and hand-built sites
Plain HTML site Script or frame
- Copy your form ID from the MapleForms Embed page.
- Paste the script snippet at the exact spot in the page where the form should appear.
- Upload the file. There is nothing else to configure.
React / Next.js Script embed
- Copy your form ID from the MapleForms Embed page.
- Create the MapleForm component from the React recipe above.
- For the Next.js App Router, add "use client" as the first line.
- Import and place the component. For Next.js you may use next/script with strategy afterInteractive instead.
Watch out. Strict Mode double-invokes effects in development. Our recipe guards against a duplicate script tag, so do not remove that check.
Vue / Nuxt Script embed
- Copy your form ID from the MapleForms Embed page.
- Add a template div with a ref, for example formBox.
- In onMounted, inject the embed.js script, then call window.MapleForms.render with formId and that element as target.
- For Nuxt, ensure the code runs client side only.
Watch out. Server-side rendering has no document. Guard the injection so it only runs in the browser.
Astro / SvelteKit / Eleventy Script or frame
- Copy your form ID from the MapleForms Embed page.
- These render real HTML, so the plain script snippet works as written.
- In Astro, place it directly in the .astro template. Add is:inline if your bundler tries to process it.
Email and newsletters Link only
- Email clients strip both scripts and iframes, so a form cannot be embedded in an email.
- Link to the hosted form URL instead. Every MapleForms form has its own public page.
- Use the view endpoint URL from the Embed page as the link target.
Watch out. Anyone promising an embedded form inside an email is describing something no mail client supports. Always send a link.
Platform not listed?
Ask us about your platform
Questions
Compatibility FAQ
Yes. MapleForms publishes a single-script embed and a frame embed, and 30 platforms are documented, including Lovable, Bolt.new, v0, Framer, Webflow, Wix, Squarespace and WordPress. The form renders inside your own layout rather than sending people to a third-party page.
React removes script tags written into JSX, so nothing runs and nothing appears. Use the small React component shown on the compatibility page, which injects the script and then calls the render function against a div you control. On the Next.js App Router that component also needs "use client" as its first line.
Notion and Google Sites run no third-party JavaScript, and the Wix HTML widget is itself a frame. On those, point a frame at the form URL and set a height by hand, because a hand-written frame does not size itself.
Building, publishing and embedding forms is free, with no tiers and no monthly fees. Only the optional AI tools consume Maple AI Tokens. Some website platforms charge for their own custom-code feature, which is their fee rather than ours.
No. Email clients strip scripts and frames, so no form can be embedded in an email on any platform. Link to the hosted form page instead.