User:YvanZo/Draft/MusicBrainz Email Renderer: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
(→‎MJML email renderer: Fix formatting)
(→‎MJML email renderer: Estimation made with bitmap)
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
Languages/skills: React.js, Rust<br>
Languages/skills: React.js, Rust<br>
[https://community.metabrainz.org/c/musicbrainz Forum for discussion]<br>
[https://community.metabrainz.org/c/musicbrainz Forum for discussion]<br>
Estimated Project Length: TBD hours<br>
Estimated Project Length: 175 hours<br>
Difficulty: TBD
Difficulty: medium


MusicBrainz Server can send emails to users in different occasions: email verification, edit notes, subscription edits, autoeditor election…
MusicBrainz Server can send emails to users in different occasions: email verification, edit notes, subscription edits, autoeditor election…
Line 13: Line 13:
The first option would allow to reuse some components from the website frontend which has been mostly converted to React ([[jira:MBS-8609]]),
The first option would allow to reuse some components from the website frontend which has been mostly converted to React ([[jira:MBS-8609]]),
while the second option would be blazing fast (170× faster than the original Node.js implementation) but would require much work for components.
while the second option would be blazing fast (170× faster than the original Node.js implementation) but would require much work for components.

However a multipart email (text/HTML + text/plain) is still wanted here, while MJML is focused on generating HTML only.
So the plain text alternative part should probably be generated using a tool like [https://crates.io/crates/html2text html2text].

Latest revision as of 18:28, 29 November 2023

MJML email renderer

Proposed mentors: bitmap, reosarevok, yvanzo
Languages/skills: React.js, Rust
Forum for discussion
Estimated Project Length: 175 hours
Difficulty: medium

MusicBrainz Server can send emails to users in different occasions: email verification, edit notes, subscription edits, autoeditor election… So far these emails are generated in text only format using Template Toolkit which has had its day.

A modern replacement can be MJML through either the React.js wrapper mjml-react or the Rust reimplementation MRML. The first option would allow to reuse some components from the website frontend which has been mostly converted to React (jira:MBS-8609), while the second option would be blazing fast (170× faster than the original Node.js implementation) but would require much work for components.

However a multipart email (text/HTML + text/plain) is still wanted here, while MJML is focused on generating HTML only. So the plain text alternative part should probably be generated using a tool like html2text.