BuilderJS

Build Your Own Email Marketing Platform Editor with BuilderJS

Building an email marketing platform, newsletter tool, or ESP and need the part where users design their emails? That visual drag-drop editor is months of work most teams underestimate: nesting elements, undo/redo, responsive controls, and — the hard part — exporting HTML that survives Outlook. BuilderJS is that editor, ready to embed. It is a framework-agnostic vanilla-JS library (~140KB) that mounts in any DOM node — React, Vue, Svelte, Angular, Next.js, Laravel, or plain HTML — and produces Outlook-safe, table-based email HTML through its EmailExportPipeline. Be clear on the boundary: BuilderJS is the editor your users click in, not the platform around it. It builds the markup; your application owns sending, contact lists, scheduling, analytics, and deliverability. You wire its JSON output to your queue and your ESP or SMTP. You buy it once on CodeCanyon, get the source, and self-host — no SaaS subscription, no per-seat fee, no usage metering, no phone-home.

What BuilderJS gives your email platform (and what it doesn't)

BuilderJS hands you the design surface: 42 element types, 59 controls, and 31 overlays for building campaign emails and newsletters by drag and drop. It is JSON-first — getData() serializes the full design and load() restores it losslessly, so you store the JSON in your own database and re-open any draft exactly as the user left it. Its EmailExportPipeline converts flexbox layouts to tables, rasterizes SVG to PNG, adds @media mobile-stacking and MSO conditional comments, and inlines CSS, producing email HTML that has been Litmus-tested across 22 clients. What it does not do: BuilderJS does not send email, manage subscriber lists, run automations, track opens, or handle deliverability. Those are your platform's job. The clean handoff is the JSON-and-HTML boundary — your app calls getData(), POSTs the result to your route, and your worker injects merge tags and pushes to your ESP or SMTP relay. You own the platform; BuilderJS owns the canvas.

Embed it in your existing stack

BuilderJS is a DOM-mount bundle — dist/builder.js plus dist/builder.css — not a published npm React or Vue component. You mount it client-side into a DOM node you control. In React, initialize inside useEffect; in Vue, onMounted; in Angular, ngAfterViewInit; in Svelte, onMount. For Next.js, use a dynamic import with ssr:false inside a 'use client' component, since the editor runs in the browser only. Persistence is your call: read getData() on save and POST the JSON to your backend route. The download ships reference PHP backends (MySQL, SQLite, and S3 for save, upload, and auth) that you copy and own outright — treat them as a starting point and port the same contract to Node, Go, or Python if that matches your stack. Because everything is closure-captured at mount time, BuilderJS is multi-tenant capable, but tenant isolation, seats, and billing remain your application's responsibility.

Extend the editor without forking

An email platform usually needs brand-specific blocks — a product card, a coupon module, a footer that pulls in legal text. BuilderJS lets you register custom Elements, Widgets, and Controls through Builder.registerElement, so your additions live alongside the built-in set without touching or forking the core. You can theme the UI to match your dashboard and localize it: i18n ships with 20+ locales including RTL. Vendor-neutral AI hooks are pluggable, so if you want subject-line or copy suggestions you wire in whatever model you already use — BuilderJS does not lock you to a provider. Because you own the source, deeper changes are always on the table, and upgrades are yours to apply on your own schedule rather than forced by a vendor's release cadence.

Own it once instead of renting it forever

Most embeddable email editors are sold as monthly SaaS. Unlayer, for example, is a hosted embeddable builder with a free tier and paid plans at $250/mo (Launch), $750/mo (Scale), and $2,000/mo (Optimize), plus custom Enterprise pricing — a recurring cost that scales with your usage (pricing as of June 2026; verify at unlayer.com/pricing). On the open-source side, GrapesJS is a genuinely capable, BSD-3-Clause-licensed, free-for-commercial-use builder framework (as of June 2026, github.com/GrapesJS/grapesjs) — if you have the engineering time to assemble and maintain an email export pipeline, presets, and templates around it, that is a legitimate path. BuilderJS sits between them: a finished, supported, framework-agnostic editor that builds both email and web pages out of the box, sold as a one-time CodeCanyon license (item 27146783) — Regular $52 or Extended $99. You get the source, self-host it, and pay nothing monthly: no per-seat fee, no usage metering, no phone-home.

From blank canvas to ready-to-build

You do not start from zero. BuilderJS ships with 30+ templates and 200+ samples, all Litmus-tested across 22 email clients, so your users open the editor to working starting points rather than an empty box. The same engine that builds Outlook-safe email also builds web and landing pages, which is useful if your platform offers hosted signup or campaign landing pages — BuilderJS builds that markup too, and your app handles hosting it. You can try the editor live at builder.emotsy.com to see the drag-drop, the controls, and the export before you commit. One note on support: author support time is time-boxed (roughly 6–12 months), but because you own the source outright, your ability to run, patch, and extend the editor never expires with a subscription.

Frequently asked questions

Explore