Live data from Hacker News

Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

play.templatical.com

21–30 of 63 posts

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#21
Picking MJML as the output format instead of raw HTML is the move. That's the layer where the cross-client pain has already been solved by people more patient than any of us.

Two questions:

1. How extensible is the block system? Can consumers define their own block types with custom MJML output, or are you limited to the built-ins?

2. Any plans for a headless render path (JSON → MJML → HTML on a server) for transactional emails generated from templates at send time?

Either way, bookmarking. Been waiting for someone to do this without the SaaS tax.

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#22

Picking MJML as the output format instead of raw HTML is the move. That's the layer where the cross-client pain has already been solved by people more patient than any of us. Two questions: 1. How extensible is the block system? Can consumers define their own block types with custom MJML output, or are you limited to the built-ins? 2. Any plans for a headless render path (JSON → MJML → HTML on a server) for transacti…

Thanks — yes on both, and both already exist today.

1. Custom block extensibility: full. You define a custom block as a schema — typed fields displayed in the editor (text, textarea, image, color, number, select, boolean, repeatable that contains basic fields) plus a Liquid template that emits HTML using those field values. The editor auto-renders the form for marketers to fill in, then runs the Liquid against those values to show a live preview on the canvas — so consumers don't write a Vue component themselves. The renderer wraps that HTML in , so it still goes through MJML's table layer for cross-client rendering. Optional dataSource.onFetch lets the block hit your API at render time, so use user can fetch custom block contents from existing data source — instead of having to manually type values into every field. Check out the docs and playground for custom blocks usage.

2. Headless render path: that's exactly what @templatical/renderer is. Separate package, zero UI dependency, pure JSON -> MJML conversion. You store the JSON tree in your storage; on the backend you pass it to renderToMjml() and get MJML back. Since MJML has compiler libraries in almost every language, you compile MJML to HTML yourself whenever. Currently the renderer is TypeScript-only (browser + Node.js); porting to other languages as first-party packages is on the roadmap.

The whole shape — store JSON in your DB, render at send time on your server, send via your own provider — is the transactional flow you described.

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#23

Picking MJML as the output format instead of raw HTML is the move. That's the layer where the cross-client pain has already been solved by people more patient than any of us. Two questions: 1. How extensible is the block system? Can consumers define their own block types with custom MJML output, or are you limited to the built-ins? 2. Any plans for a headless render path (JSON → MJML → HTML on a server) for transacti…

Thanks — yes on both, and both already exist today. 1. Custom block extensibility: full. You define a custom block as a schema — typed fields displayed in the editor (text, textarea, image, color, number, select, boolean, repeatable that contains basic fields) plus a Liquid template that emits HTML using those field values. The editor auto-renders the form for marketers to fill in, then runs the Liquid against those…

[flagged]

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#25

Really cool work. Quick question: is this built on top of React Email?

Thanks.

No — built from scratch on Vue 3 + TipTap, no React anywhere. Output is MJML, not the React-component-to-HTML approach React Email takes.

Adjacent category but no shared foundation: React Mail is a code-first library for devs to write emails as components; Templatical is an embedded visual editor for marketers to build them without touching code.

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#28
This looks great! So glad the output is MJML. I will have to see how I can embed it in the project I am working on as I have been wanting to add the feature for clients to build out their own emails or customize some of the standard templates. It will at least be a big help in my own admin UI to start.

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#29

This looks great! So glad the output is MJML. I will have to see how I can embed it in the project I am working on as I have been wanting to add the feature for clients to build out their own emails or customize some of the standard templates. It will at least be a big help in my own admin UI to start.

Amazing to hear :)

If you ship your app with it, send a link — happy to feature it on the showcase page. Also, if you have existing HTML-based templates, try the @templatical/import-html package to convert them to Templatical JSON true — should get you a reasonably close starting point.

Re: Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

#30
Looks good! Do you have an MCP or API in your roadmap? The reason: managing a lot of templates and their placeholders can get out of hand pretty quickly and agents can be a good way to deal with the complexity.

I'd love to try this with sendops.dev although I'm not sure how it's going to work with the git backed templating it has.

Post reply on HN