Show HN: Sendune – open-source HTML email designer
HTML for email is probably the hardest code to write. Even a teeny-tiny deviation from the rules will break the email in untold combination of os/desktop/mobile clients.
It's mid 2024. Almost 50 years since email was invented and 35 years since HTML was born. A 'basic-open-source-HTML-email-designer' must be a solved problem, right? We thought so too.
Sadly, that's not the case.
There are a few decent open source email designers but they carry dependencies that make them cumbersome to embed within your app. That's why we decided to open source our HTML Email Designer.
The SENDUNE email designer focuses on simplicity and ease of use. It is light-weight. It does pure HTML - no intermediate code wranglers like mjml. There is no lock-in of any kind. Save HTML output as a template and use with ANY email service provider.
Feel free to fork the repository, make improvements, and submit pull requests.
AMA: hello at sendune dot com
98 comments
[ 3.0 ms ] story [ 269 ms ] threadWhat exactly were you "not expecting"?
Ok, in some cases I see why html would make some sense. In those cases, my opinion is: send text and invite the person to view markup content in their browser.
The e-mail context is not suitable for markup, styling, and all this stuff.
The problem is there is no practical way of getting back to plain text, or even to a different type of markup.
To say nothing of legitimate marketing emails (which many people rely on to get coupons and deals) that has to feature pictures and the like.
I don't think there is such a thing.
The senders of those emails are happy to send them.
Unless you - an unrelated third party - think you have the right to insert yourself into this business relationship, it's completely legitimate.
None of that requires HTML. Using ">" to denote previous conversation quotes is the standard and they normally get highlighted different than reply text. And images just need a decent 'drag-to-add-attachment' flow.
Marketing emails don't matter as they are an abuse of the platform.
Handing down diktats about the correct use cases and workflows for a flexible thing that is currently being used by billions of people in billions of ways - like email - will either reduce your personal relevance to them, or, if you succeed in pushing your vision onto the popular thing, drive people away from it.
Another problem are mails that don't have the TXT part and *only* HTML.
I plain cringed when I saw the headline. This sounded like a tool designed by some evil entity to bring destruction upon the World.
Also humans seem to need fashion as a mechanism to show belonging and distinction. (Differentiate form parents generation, show affiliation to some sub culture, ...)
And then there is the hope to make the production more efficient. (Which may not work out)
I guess Google tries/tried with AMP but it's not that and I doubt they have the resilience to keep the effort up for decades for it to catch on.
See https://www.caniemail.com/scoreboard/ and take note of what's at the bottom of that list.
We just need so called "Kobold letters" to catch on so that all the inconsistencies become an actual threat. I'm only partially joking.
Just in case it is a genuine question:
- This is a tool for designing/creating emails - they say in the title of this post "Open source HTML email designer"
- Resend is a tool for sending emails: "Deliver transactional and marketing emails at scale" this is from the hero of resend homepage
I dont know any of them, just opened the Resend website and read the hero and read the description of the post you are commenting.
we found this approach simpler than drag and drop, especially when designing long emails.
let me know if drag and drop is something thats an absolute for you. we can bring it back.
I'm looking forward to seeing the product grow!
Not using MJML as a design decision. Foes that simplify deployment a lot, or just keep things lighter? In turn, do you have to strangle a lot of compatibility issues yourself? etc. Thanks.
HTML works fine, and adds important features like formatting text and links. HTML without images is ideal, as images are often blocked (as you mention).
I prefer plaintext too, but for a marketing email (ie, "confirm your account") consumers will think it feels "off" or unpolished given what they are used to. It will likely lead to churn. Clients can opt to view plaintext if they prefer.
Edit: also it's a bit funny the page you link, useplaintext.email, uses lots of HTML formatting.
And in defense of html emails: for marketing missions there's nothing like a nice piece of visual design -- layout, color, possibly some type design, but not necessarily images since folks like me turn them off because of tracking -- to get attention and drive interest. Also, html can allow for column layout that could keep email content shorter than plain text version
If that is true, it is only true because email providers are making a choice on behalf of consumers, namely, the user writes plain-text emails (at, e.g., gmail.com) then the provider converts it to HTML.
If it feels out of date, it’s because HTML email itself is out of date.
Not your fault, but please always provide fall back text.
You're being too kind if anything. Whilst trying to bash HTML emails into something acceptable I questioned if my life wouldn't better have been spent as a monk in Tibet.
I do lot of email templating for B2B CRM use cases and decided to opt out for a bit different approach based on slatejs/platejs editor
https://docs.slatejs.org/
https://github.com/ianstormtaylor/slate
https://github.com/udecode/plate
The internal representation of email template with variables in slatejs/platejs json format can look like:
{ "type": "h1", "children": [ { "text": " Blocks {{template_value}} {{$timenow}}}" } ], "id": "1" }
Can be easily stored in Postgres jsonb. Very easy to add Reacjs base widgets like mentioning, media, diagrams, etc inside of slatejs/platejs editor.
The drawback is that you can't design the exactly the same pixel perfect template.
The better abstraction is probably MJML - https://mjml.io/ ... and yet with slatejs/platejs json format you can copy&paste your editings across various assets in CRM, knowledge base, etc
Storing data in MJML is not a great choise for me
<mj-text align="left" color="#55575d" font-family="Arial, sans-serif" font-size="13px" line-height="22px" padding-bottom="0px" padding-top="0px" padding="10px 25px"> ...
Was thinking about using something similar to /SendWithSES/Drag-and-Drop-Email-Designer as the last final step ... but couldn't settle it my brain and most end-users dont care anyway.
Any thoughts on data representations and "Postgres <> Editor > Email HTML > Send button" dataflow is greatly appreciated. Very few people have serious thoughts on the subject.
<mj-class name="typebox" padding-bottom="0px" padding-top="0px" padding="10px 25px">
<mj-class name="paragraph" color="#55575d" align="left" font-family="Arial, sans-serif" font-size="13px" line-height="22px">
That would allow you to simplify your callbacks to
<mj-text mj-class="paragraph typebox">
You can also set CSS classes as well if you need something outside the MJML spec for some reason (which would potentially cover some of your cross-platform concerns).
MJML also integrates well with other languages. For example, I use a Craft CMS integration to pull data in via Twig to build complete templates directly from my CMS; there’s also an integration with Eleventy.
I will grant that many people want rich text, formatted emails with images and logos. I don't want that but understand the wants and needs are different for others.
For gods sake why HTML? A fairly simple markup language (Markdown, orgmode, etc) would have sufficed, would have eliminated the need for separate plain and html versions of every email, been far more accessible to screen-readers and other assistive devices, been far less privacy-invading, and been far less vulerable to security problems.
But no, the answer was "let's put a full-blown web browser in every email client"
I know the horses have left the gate.
Why do we still boot to 16-bit protected mode to launch any OS on x64? shrug but you are welcome to move that mountain :)
There are better ways to push the ball forward than this recurrent frustration over something that is so broadly used. A key one would be to improve support for making divs display properly in HTML emails, so the format could be more accessible, for example, as well as to look into ways to push corporations away from outdated email clients. Finally, a way to sandbox emails to help minimize concerns around risky designs would be ideal.
AMP is a dirty word around these parts, but Google’s AMP for Email did some of these things.
I don’t know what that would look like, but there has to be a better way to expel our energy than just being frustrated about something that’s unlikely to change.
But unfortunately it wasn't very popular.
https://github.com/SendWithSES/Drag-and-Drop-Email-Designer