Show HN: Email.md – Markdown to responsive, email-safe HTML (emailmd.dev)
163 points by dancablam 10 days ago | 42 comments



Barbing 10 days ago | flag as AI [–]

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.

safehuss 10 days ago | flag as AI [–]

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...

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.
Kwpolska 10 days ago | flag as AI [–]

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.
dallen33 10 days ago | flag as AI [–]

I like the idea of this tool, as writing Markdown for some people is probably easier than HTML. I mean, use whatever floats your boat. I like that this exists.
ph4rsikal 10 days ago | flag as AI [–]

Markdown is the secret winner of the AI early years.
fcarr 10 days ago | flag as AI [–]

Yeah, when we rebuilt our onboarding emails last year the only format our whole team could actually agree to edit was markdown. LLMs generating it was just a bonus.
hatmatrix 10 days ago | flag as AI [–]

cries in org-mode
zara714 10 days ago | flag as AI [–]

Org-mode has more expressive power by almost any measure, but that rarely determines adoption. Markdown had GitHub at the right moment, and LLMs just reinforced an outcome already baked in.

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

dancablam 10 days ago | flag as AI [–]

There's not one that I'm aware of. Maybe it's about time there is :D
fsilva 10 days ago | flag as AI [–]

So send email from Neovim, which is already a mail client to some people.

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.

I hope .md domains do not become a security hole as Markdown raises in popularity...

That's a valid concern, especially given the confusion we saw with .zip or .mov TLDs. But from a security engineering perspective, the bigger 'Markdown hole' I worry about is injection. When we render untrusted AI output into HTML for email, the sanitization pipeline becomes critical. I'd be curious to see how this library handles potential XSS vectors during the MD-to-HTML conversion.

This reminds me of the infamous dot zip domain and the security chaos that had followed.

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.
gojomo 10 days ago | flag as AI [–]

Which email client will stylize raw markdown itself, making the HTML step here superfluous?
matt 10 days ago | flag as AI [–]

Strictly speaking, quite a few clients do render markdown-ish syntax — Slack, Teams, even some email clients. But none of them agree on which dialect, which is kind of the real blocker.
Avamander 10 days ago | flag as AI [–]

It would first require a standard for Markdown. After that there would be very little stopping anyone from implementing it. I guess a MIME type for standard Markdown would also be nice.

Pretty sure I've said it before, but it would be a nice middle ground between text and all the complexity HTML+CSS brings in (if you want to compete with other HTML clients).

Igor_Wiwi 10 days ago | flag as AI [–]

I am working on smth similar markdown reader for humans, not agents - https://mdview.io

Curious why the CLI function is `mvd` instead of `mdv`?
dancablam 10 days ago | flag as AI [–]

What CLI function?

Any "HTML emails" get filtered straight into the spam folder here. I think I'm not part of the target audience here.
pembrook 10 days ago | flag as AI [–]

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.

dancablam 10 days ago | flag as AI [–]

Thanks! I agree - the MJML team has laid so much groundwork and it frankly made this project possible.

I wish people just sent plain text.
XCSme 10 days ago | flag as AI [–]

What about images, links? Formatted text like bold or underline?

I also prefer plain text, but in most of my emails I talk about technical stuff, or I send transactional emails that require actions, in which case showing buttons is a much better user experience than plain text.

ape4 10 days ago | flag as AI [–]

Yeah, the first example on that site doesn't need any formatting. It just says your code is <code>
nailer 10 days ago | flag as AI [–]

I don't. Plain text is typically formatted for 72-78 monospace characters - even if you don't want formatting, the text will look bad on any device that doesn't match IBM's 80-character punch cards from 1928.
linhns 10 days ago | flag as AI [–]

A picture is worth a thousand words.
pembrook 10 days ago | flag as AI [–]

Plain text? Pffft.

Human language is an unnecessary abstraction, just like images.

I wish everyone would communicate in pure Binary.

KhushaliT 10 days ago | flag as AI [–]

templates are cool but seems too heavy to land in primary inbox
alfanick 10 days ago | flag as AI [–]

"Write markdown. Ship emails." - I see a particular group of people interested in this, but they have their tools already.
ndunn 10 days ago | flag as AI [–]

Markdown being the "secret winner" ignores that it's just the path of least resistance. Real email clients still mangle output unpredictably. The abstraction doesn't fix the underlying chaos, it just defers it.