FAQ and troubleshooting
Keys, screens, and commands may differ in other versions.
Preview or export fails
Almost always, MJML isn't installed for this template. dd_emailforge needs Node.js 20+ and the mjml compiler, and it doesn't download them for you.
- Check Node:
node --versionshould show v20 or newer. If not, install the current LTS from nodejs.org. - In the template folder, run
npm install. You need to do this once for every new template folder;initdoesn't do it. - Try again (
pto preview,Shift+Eto export).
If your template uses images from the images/ folder, export also needs an https:// Base URL in [HEAD].
"node: command not found" or "mjml: command not found"
Node.js isn't installed, or isn't on your PATH. Install Node.js 20 or newer, open a new terminal window, and run npm install in the template folder again.
"dd_emailforge: command not found" after installing
The app is installed at ~/.local/bin/dd_emailforge, and that folder isn't on your PATH yet. Add it to your shell's startup file (for example ~/.zshrc or ~/.bashrc):
export PATH="$HOME/.local/bin:$PATH"
Then open a new terminal window.
My logo doesn't show in Gmail or Outlook
It's probably an SVG. Gmail and Outlook don't show SVG images. Use a PNG (or JPG) on a public https:// address instead. For the ldnddev logo:
- Light background:
https://res.cloudinary.com/eojrsoca/image/upload/v1790540409/logo-full-black-text.png - Dark background:
https://res.cloudinary.com/eojrsoca/image/upload/v1790540410/logo-full-white-text.png
Images show in the preview but not in the sent email
Email apps can only load images from public web addresses. If you used images from the template's images/ folder, upload them to a web host and set the https:// Base URL in [HEAD], or switch to full https:// image addresses. Then export again.
Validation says my button is too narrow
A button's pixel width must be larger than its left and right inner padding combined. Make the width bigger, reduce the padding, or clear the width.
My new block appeared below the footer
You had [BODY] selected when you pressed /, so the block was added at the very end. Select it and press K to move it up, or press u and try again. Next time, select the block you want the new one to follow (for example, the section above where it should go) before pressing /.
I can't add a section while the hero is selected
That's expected. A hero only holds content blocks (text, image, button, …), so the picker shows "(nothing can be inserted here)". Select a top-level block instead, such as the email-header or a section, add the section there, and move it with J/K.
I pressed C and got only one column
A new section starts with no columns. The first C adds one full-width column; press C again for two columns at 50% each.
My custom column widths were reset
Every C or V resets all columns in that section to equal widths. Add or remove columns first, then set each column's Width in FormEdit.
The X icon shows the old Twitter bird
In v0.9.2 the x network is output as MJML's twitter icon, so the bird appears. The link still goes to your X profile. To show the X logo, put the https:// address of an X logo PNG in that icon's Icon src (web) field.
Ctrl+U doesn't clear a field
Right, it doesn't. Press End, then Backspace until the field is empty (in a multi-line box, press Ctrl+End first).
I pressed q and nothing happened
That's on purpose. Press Ctrl+Q to quit.
Some shortcuts are missing from the footer bar, or the right panel disappeared
Your terminal window is too narrow. Below 48 columns only the Structure panel shows, and narrow windows drop keys from the footer bar. Widen the window, or press F1 to see every key.
I deleted something by mistake
Press u to undo (up to 20 steps), and U or Ctrl+R to redo. Manual saves (s) also keep a template.json.backup copy in the folder.
The unsubscribe link reads `*|UNSUB|*` in the preview
That's expected. It's a Mailchimp merge tag. Mailchimp replaces it with each reader's real link when you send. Using another email service? Change unsubscribe_href in the email-footer to that service's tag.
Can dd_emailforge send emails or test emails?
No. Export the HTML and send (and test) from your email service. See Export and send.
Which email services does it work with?
Any service that lets you paste or upload your own HTML. These guides use Mailchimp as the example.
Can I import an email I already have?
No. dd_emailforge doesn't import MJML or HTML. Build the template in dd_emailforge, starting from a starter if that helps.
Can I edit the HTML in my email service afterwards?
You can, but those edits are lost the next time you export. Make changes in dd_emailforge and export again.
What's the difference between the Theme (F2) and [BRAND]?
The Theme changes the colors of the dd_emailforge app on your screen. [BRAND] sets your email's fonts and colors. Only [BRAND] affects the email.
Does it work on Windows?
There's no Windows build in v0.9.2. Builds are available for macOS and Linux (Intel/AMD and ARM). Windows Subsystem for Linux (WSL) isn't mentioned in the project's docs and hasn't been tested.
Can I make columns different widths?
Yes. C and V always make columns equal widths, so add or remove columns first. Then select each column, press Enter, and set its Width (for example 40% and 60%). Pressing C or V again resets them to equal widths.
Where do I put my mailing address and social links?
Your mailing address goes in the email-footer's Address (one line per row) field. Social links go in an mj-social block (or in the footer's Social list; use one or the other so icons don't appear twice). See Build your first email.
Where does the app keep its settings?
In ~/.config/ldnddev/: the theme file (dd_emailforge_theme.yml) and, in dd_emailforge/, the path of the last template you opened (last_path).
How do I update or uninstall?
To update, run the install command again (add VERSION=v0.9.2 to stay on a specific version). It replaces the app in place and leaves your theme file alone. To uninstall:
curl -fsSL https://raw.githubusercontent.com/ldnddev/dd_emailforge/main/install.sh | bash -s -- uninstall
Previous: For developers · Back to: dd_emailforge overview