Lit Pigeon
Design responsive emails by dragging blocks around, then export MJML and HTML you actually own. Open source, ~17 kB, no SaaS in the middle.
Lit PigeonDesign responsive emails by dragging blocks around, then export MJML and HTML you actually own. Open source, ~17 kB, no SaaS in the middle.
How it compares to other email editing solutions
| Solution | Open Source | Framework Agnostic | Bundle Size | MJML Export | Visual Editor |
|---|---|---|---|---|---|
| Unlayer | ✗ Proprietary | ✓ | ~300 kB+ | ✗ | ✓ |
| GrapesJS | ✓ | ✓ | ~250 kB+ | ✗ Plugin | ✓ |
| MJML / React Email | ✓ | ✗ React-only | Varies | ✓ | ✗ Code-only |
| Mosaico | ✓ | ✗ Knockout.js | ~200 kB+ | ✗ | ✓ |
| Lit Pigeon | ✓ MIT | ✓ Web Components | ~17 kB gzipped | ✓ Built-in | ✓ Drag & Drop |
Everything you need to build email templates
Visual editor with block placement, reordering, and multi-column layouts.
Render to MJML and responsive HTML built for Gmail, Outlook, and Apple Mail.
Import existing MJML templates into the editor for further editing.
Web components with Lit. Wrappers for React, Vue, Svelte, and Angular — or use vanilla JS.
Tiny footprint. ~5 kB core engine plus ~12 kB editor UI — no bloated dependencies.
Extend the editor with custom blocks, toolbars, and behaviors — inspired by ProseMirror.
Modular architecture — use only what you need
Get up and running in seconds
import '@lit-pigeon/editor';
import { createDefaultDocument } from '@lit-pigeon/core';
const editor = document.querySelector('pigeon-editor');
editor.document = createDefaultDocument('My Email');
import { PigeonEditor } from '@lit-pigeon/react';
import { createDefaultDocument } from '@lit-pigeon/core';
const doc = createDefaultDocument('My Email');
export default function App() {
return <PigeonEditor document={doc} />;
}
import { PigeonEditorModule } from '@lit-pigeon/angular';
// In your module
@NgModule({ imports: [PigeonEditorModule] })
// In your template
<pigeon-editor [document]="doc"></pigeon-editor>