finds.dev← search

// the find

arikchakma/maily.to

★ 3,809 · TypeScript · MIT · updated Jun 2026

Craft beautiful emails effortlessly with Maily, the powerful email editor that ensures impeccable communication across all major clients.

Maily is a WYSIWYG email editor built on Tiptap, designed to produce email-client-compatible HTML without you having to wrestle with table-based layouts. It ships as a React component (`@maily-to/core`) plus a separate renderer (`@maily-to/render`) that converts the editor's JSON to React Email-compatible HTML. Aimed at developers who need to embed an email builder into their own product.

The editor/renderer split is the right architecture — you can use the renderer server-side without pulling in the full editor bundle. The variable system with typed placeholders and the `Show If` conditional block are genuinely useful for transactional email builders, not just marketing fluff. Tiptap as the foundation means ProseMirror's battle-tested document model handles selection, history, and collaborative editing without Maily reinventing any of that. The column and section layout primitives map directly onto table-based email structure, so what you see in the editor is what survives Outlook.

Self-hosting requires Supabase for auth and storage — there's no bring-your-own-backend story for the web app, so embedding this in an existing product means either wrapping the `@maily-to/core` package in isolation or rewriting the auth layer. The `Repeat` block (for dynamic lists) is underspecified: there's no schema validation on the variable data shape, so runtime rendering errors are on you to catch. Testing coverage appears thin — one test file visible in the render package — which is a risk for something that needs to produce consistent HTML across email clients. Dark mode in emails is explicitly not handled, which is an increasingly visible gap as Apple Mail and other clients auto-invert styles.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →