Show HN: Email.md – Markdown to responsive, email-safe HTML (emailmd.dev)

by dancablam 94 comments 380 points
Read article View on HN

94 comments

[−] safehuss 52d ago
Anything that makes email development easier is great I guess, but have personally found MJML great for solving the issues you'd run into, and not sure I want yet another abstraction layer on top of that which makes it more limited...
[−] seer 52d ago
They address this in the docs - it is meant to make authoring the content easier for LLMs since that is easy for them to write.

It still uses MJML for the actual templates, but it is a translation layer between markdown and the template itself.

If you need to author a lot of emails with LLM this does seem like it would be a great fit.

[−] devnotes77 52d ago
[dead]
[−] Kwpolska 53d ago
This appears to be a MJML wrapper with a Markdown→HTML converter attached to it. I think generating HTML from code is easier than generating Markdown, since there are many templating tools that understand HTML escaping. And writing HTML is not that hard, especially for your typical emails, so I'm not really sure if this library would be helpful in the long run.
[−] bpev 52d ago
I'm never seen the ::: header or ![Logo](https://...logo.png){width="200"} kind of syntax before. Is this custom or Frankenstein solution? Or is there some kind of md-extended pattern for defining components that has been gaining steam or smthn? Markdown tooling is always confusing, since everyone has their own standard.
[−] ph4rsikal 52d ago
Markdown is the secret winner of the AI early years.
[−] pembrook 53d ago
I like how you aren't hiding the fact this is MJML under the hood and don't layer complex abstractions over MJML spec like similar projects (cough react email cough).

The devs maintaining MJML deserve so much credit for dealing with Gmail/Outlook's monopoly bullshit and 2007 html.

Nice idea for those who manage content in markdown. I've moved away from putting emails in my codebase, but seems great for founders moving fast.

[−] deknos 52d ago
i never understood why the markdown mime type was not used in emailclients in webclients or desktop programs...

that would eliminate most html usage and enable longer texts than 70-85 characters per line.

[−] binaryturtle 52d ago
Any "HTML emails" get filtered straight into the spam folder here. I think I'm not part of the target audience here.
[−] Escapade5160 52d ago
At this point markdown is going to be the foundation of the entire AI web. Someone the other day showed off Markdown as a responsive frontend protocol. Now we've got email. How long until we're writing classes in markdown? We can only abstract this so far before we confuse AI more than help it.
[−] theanonymousone 52d ago
I hope .md domains do not become a security hole as Markdown raises in popularity...
[−] matzalazar 52d ago
Great project! And if you don't mind a little workaround and some Python scripting, you can turn a regular Obsidian folder into an automatic outbox. Write markdown, drag, drop, and ship.
[−] razvan_maftei 52d ago
I'm not exactly following as to who this is for - people are going to use email templates instead of writing Markdown emails, and agents can just as easily spit out HTML. Seems like your solution is in search of a problem.
[−] comchangs 47d ago
Nice. The LLM authoring angle is underappreciated — getting an AI to write valid MJML is painful, but Markdown is trivial.

One thing I'd love: a CLI mode so I can pipe it into deployment notification hooks. Something like echo "Deploy succeeded" | emailmd | sendmail would be killer for DevOps workflows.

[−] creatonez 51d ago
I never actually thought about this. How are people making HTML emails so responsive? Email HTML is stuck in the IE6 era, right? So everything is just a horrible workaround with tables and ancient CSS?
[−] Barbing 52d ago
Very nice. I think the kind of folks attracted to this thread might have some thoughts on a workflow I'm interested in.

When I see a news article, I want to be able to click a button on my Mac or iPhone to send the text of the article in the body of the email. Bonus points for rehosting the images from the article. And using a similar font both without carrying over any of the original external dependencies.

Normally it’s good to support the journalist but I cannot in good conscience send a link to elderly folks when this is so much safer.

[−] articsputnik 52d ago
Love everything to Markdownify :) I was just wondering, is there a Neovim/Markdown email client? Potentially using something like this? I love Neomutt, or Newsboat, and other TUIs. It would be great to have something totally on Markdown. Update: I gave it a spin [1] with Go and some of my favorite CLI's.

[1] https://x.com/sspaeti/status/2036539855182627169

[−] annie511266728 52d ago
Feels more like a content layer for LLMs than a replacement for MJML.

In my experience models tend to break HTML layouts pretty easily, while Markdown degrades more gracefully.

[−] rbbydotdev 52d ago
Nice usage of admonitions. This is a great example of how eloquent markdown can be. Still very readable while even including the markup for 'footer' and the call out code.
[−] dimaberlin 52d ago
The real pain in email HTML isn't writing it — it's maintaining it. Markdown at least gives you something a human can edit 6 months later without crying.
[−] runtype 52d ago
Would love to use this - any plans for Cloudflare Workers support? Some of the node APIs you're using block it from working on Cloudflare right now.
[−] Igor_Wiwi 52d ago
I am working on smth similar markdown reader for humans, not agents - https://mdview.io
[−] vindin 52d ago
This problem was solved almost 15 years ago
[−] gojomo 52d ago
Which email client will stylize raw markdown itself, making the HTML step here superfluous?
[−] josegonzalez 52d ago
This plus a block-based editor like editorjs would be a great addition to any custom cms.
[−] KhushaliT 53d ago
templates are cool but seems too heavy to land in primary inbox
[−] Lord_Zero 52d ago
Does anyone use MJML in golang? What package are you using?
[−] ksajadi 52d ago
This is great! I’d love to see this supported in SendOps!
[−] deanputney 52d ago
Curious why the CLI function is mvd instead of mdv?
[−] mghackerlady 52d ago
Or, hear me out. Just send the markdown and skip the HTML bullshit. Any mail client will render markdown fine and the ones that don't either aren't worth using or don't want HTML mail in the first place. HTML email is the worst thing to ever happen to the internet
[−] koakuma-chan 53d ago
I wish people just sent plain text.
[−] rsmtjohn 52d ago
[flagged]
[−] sy0115 53d ago
[dead]
[−] hikaru_ai 52d ago
[dead]
[−] kevinbaiv 52d ago
[flagged]
[−] mitul005 52d ago
[flagged]
[−] firefoxNX11 52d ago
[dead]
[−] AlphaTheGoat 52d ago
[flagged]
[−] T3RMINATED 52d ago
[dead]
[−] jsxyzb9 53d ago
[flagged]
[−] lexro_ai 52d ago
[flagged]
[−] alfanick 53d ago
"Write markdown. Ship emails." - I see a particular group of people interested in this, but they have their tools already.