Repository navigation
Guides and examples: email providers, i18n, monorepos, MJML and Beefree, upgrading to 0.3 - #71
Open
ivoIturrieta wants to merge 8 commits into
Open
ivoIturrieta wants to merge 8 commits into
ivoIturrieta wants to merge 8 commits into
Conversation
… i18n example The content-workflows example adds Mailgun, Azure, MailerSend, Scaleway, Plunk, Lettermint, Brevo, Inbound and EUSend, each tested against a mocked endpoint. The new i18n example renders one template in English and Arabic with react-intl, react-i18next and next-intl, right to left included, and runs in CI. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
The monorepo guide previews templates with a small render script, so it needs nothing that isn't published. The READMEs point to the Elements skill in unlayer/unlayer-skills, and list @unlayer/migrate as published, with its MJML and Beefree sources. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
The MJML guide leads with `--from mjml` (what becomes blocks, what stays MJML's HTML, includes, MJML 3, what the check compares against), with the hand mapping kept for tuning. The Beefree guide covers the JSON it reads, the HTML export to check against, and declared differences. Both were checked by running the CLI on the committed fixtures. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
What changes from 0.2 to 0.3 and what to check (the text block's markup, images sized in their slot, the editor's base stylesheet, the Provider, right-to-left alignment, migrate's range), and the 0.1 to 0.2 guide. The changelog points to it. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
The example runs on Node 20 (its script and test pass there), but the Azure SDK's packages declare Node 22 or newer, so the guide and the example's README say to use 22+ to send with Azure. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
ivoIturrieta
marked this pull request as ready for review
October 16, 2026 15:24
The 0.2 to 0.3 section now says that Elements renders templates with a renderer of its own (no react-dom in a render, each component run once, Next.js's server layers and edge runtimes, and the Pages Router edge route's `unstable_allowDynamic` with webpack), that it checks the installed React (`UNLAYER_SKIP_REACT_CHECK=1`), that a part that fails throws a `RenderError` by default (`onError` and `omitted` to leave it out), that async and suspending components fail the synchronous renderers, and that `useId()` gives React's own ids, with `idPrefix` among what's new. A Row that doesn't fit its layout fails the render now, where the guide said it was left out. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
The upgrade guide gives React 18.0 to 18.3 as supported, says that a render throws by default and that error boundaries don't catch, what a <Suspense> around the template does, how the plain text differs from 0.2's, that a class component around the root is unwrapped, and, under what's new, that Tailwind's logical classes follow the text direction and that Markdown keeps raw HTML to an allowlist. The i18n guide says an async component fails the render and that a class provider's root settings are read; the monorepo guide says what two copies of React do now that Elements renders without react-dom. Co-Authored-By: Claude Code (Claude Opus 5.5 xhigh) <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on the MJML and Beefree importers PR (#70), which is stacked on the 0.3.0 library PR (#69): it shows only the guides and examples. Merge it after both, with its base changed to
mainfirst. The repo's tests only run on pull requests intomainordevelop, so CI starts here once the base ismain; until then, the validation below was run locally, with #70's head (which has #69's final head,bc81fd5) merged in.What
<FormattedMessage>/<Trans>children, right alignment by default in RTL, Tailwind's logical classes following the direction, a class provider such as<IntlProvider>around the root, and an async component failing a synchronous render).npx @unlayer/migrate <dir> --from mjml: what becomes editable blocks, what stays MJML's HTML, includes, MJML 3, what the check compares against. The hand mapping stays, for tuning the output.?for unverified, and the declared differences.<Suspense>around the template, how the plain text differs, React's ids, migrate's range, …), what else changed (a class component around the root is unwrapped), the new entries (Tailwind's logical classes follow the text direction; Markdown keeps raw HTML to an allowlist), and the 0.1 to 0.2 guide.@unlayer/migrateas published, with its MJML and Beefree sources. The changelog only gets a line pointing to the upgrade guide (its 0.1.1 to 0.2.1 history is in @unlayer/react-elements 0.3.0: Tailwind, Markdown, code, fonts, async, codegen and editor-parity fixes #69).Validation
?).--strict, includes outside the folder, MJML 3, unknown Beefree versions and the Elements version check were run before the merge, which doesn't change that code; migrate's tests for them pass.<Suspense>around the template, Tailwind's logical classes in right-to-left), and so were the i18n and monorepo guides' statements about errors, class providers and two copies of React.