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...
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.
I'm never seen the ::: header or {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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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
94 comments
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.
::: headeror{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.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.
that would eliminate most html usage and enable longer texts than 70-85 characters per line.
One thing I'd love: a CLI mode so I can pipe it into deployment notification hooks. Something like
echo "Deploy succeeded" | emailmd | sendmailwould be killer for DevOps workflows.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.
[1] https://x.com/sspaeti/status/2036539855182627169
In my experience models tend to break HTML layouts pretty easily, while Markdown degrades more gracefully.
mvdinstead ofmdv?