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

Your own magic-link email

On this page

Your app can send its own magic-link email instead of Jadpo's, at level 4 or level 5 of Built-in emails. This topic is how Jadpo fills and sends it. The checks are on the Identity page (Magic links).

Still one delivery

Whichever level you choose, asking for a link leaves the same outbox row: jadpo.MagicLinkEmail, with the address, the locale and the request's id. The link and the code are made as it is sent.

  • At level 4 that delivery fills your app's email from them, to: the address and locale: the request's, with expires_in worded as Jadpo words it. It renders the email as any of your app's emails is rendered, in its layout.
  • At level 5 the delivery runs your app's action instead, giving it a MagicLinkRequest.

A delivery whose request was used, replaced or has expired sends nothing, at either level.

Your app's action is retried as a subscriber's is, with the default retries and no retry: of its own (Retries and giving up). Each attempt makes a new link and code, replacing the last, so a message that went out before a failure can't sign anyone in once a later one has. An outside call within one attempt is sent again with the same link and code, as any call is.

Only the email holds the code

The email email: names is never emitted. A SignInCode is never kept, answered, put in a failure or an event, or written as JSON, and MagicLinkEmail's fields are copied only into an email. What your own sending does with the link and the code is up to you, as with any value you send a provider. In development that call is logged with its values, as every provider call is (Provider calls in development: jadpo calls).

Markdown for agents: /docs/custom-magic-link-email.md.Built from Jadpo main at a707efb.