Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 30 Oct 2026. What's built · Install 0.1.0
jadpo
Reference: Built-in services

Built-in services · rule

email.template_not_allowed

Template does more than read fields, translate and format.

Area 16, Built-in services; not declinable; the next step is usually the agent's.

A template reads its email's fields, translates and formats; whatever else an email says is worked out where it is emitted, and given to it as a field, so its words are reviewed in one place:

example
<h1>WELCOME, {{ text.upper(name) }}</h1>
text
error: A template only reads its fields, translates and formats --> domains/accounts/emails/welcome_email.html:1:17  |1 | <h1>WELCOME, {{ text.upper(name) }}</h1>  |                 ^^^^^^^^^^^^^^^^ a call  reason: Templates are strict: they read their email's fields, call translations and `text.format`, compare values in `{{ if }}` and walk lists with `{{ for }}`, so what an email says is decided where it is emitted, and a reviewer reads its words in one place.  next: Call only `translations.<domain>.<message>(...)` and `text.format(...)`; work anything else out where the email is emitted, and give it to the email as a field (agent)  rule: email.template_not_allowed  help: https://jadpo.dev/docs/errors/email.template_not_allowedcheck failed: 1 error, 3 files

Markdown for agents: /docs/errors/email.template_not_allowed.md.Built from Jadpo main at a707efb.