Files
Oleg Isonen fc38f71ba2 docs: Document self-hosted email tRPC interface (#6542)
Document the email service interface used by the Builder's server-side
tRPC call.

- Specify `POST /trpc/email.send`, bearer authorization, project-ID
metadata, direct JSON input, attachment encoding, and the tRPC
delivery-result envelope.
- Document `TRPC_SERVER_API_TOKEN` and `EMAIL_SERVICE_URL`, including
the current restriction to approved Webstudio Worker origins. The docs
do not claim that an arbitrary self-hosted origin can be configured
today.
- Keep the endpoint contract focused on its external HTTP interface.

Validation:
- A clean-room implementation from the original REST wording returned
404 for the Builder's `/trpc/email.send` request.
- I discarded it, revised the docs, then tested from scratch using the
actual Builder `createCloudflareManagedFormEmailSenderWithUrl` helper
from this PR head against a local fake tRPC endpoint. Success and
delivery-failure responses passed; the emitted URL, method, headers, and
direct JSON payload matched the contract.
- Confirmed the actual Builder helper rejects an arbitrary self-hosted
URL. The endpoint used a fake provider; no email was sent.
- The focused SDK managed-form email suite passes: 57 tests.
Documentation only; no deployment.
2026-10-17 02:38:56 +02:00
..

description
description
New to Webstudio?

👋 Welcome

Our getting started guide will help you navigate through building your first Webstudio website. It covers the essentials of creating web designs and integrating third-party tools. You'll learn how to utilize Webstudio's unique features like Design tokens and Components, and how to contribute to the project.

Get started


{% content-ref url="basics/building-your-first-site.md" %} building-your-first-site.md {% endcontent-ref %}

{% content-ref url="university/foundations/" %} foundations {% endcontent-ref %}

{% content-ref url="university/core-components/" %} core-components {% endcontent-ref %}

{% content-ref url="university/cli.md" %} cli.md {% endcontent-ref %}

{% content-ref url="university/inception.md" %} inception.md {% endcontent-ref %}

{% content-ref url="university/radix/" %} radix {% endcontent-ref %}

{% content-ref url="university/marketplace.md" %} marketplace.md {% endcontent-ref %}

{% content-ref url="university/self-hosting/" %} self-hosting {% endcontent-ref %}

{% content-ref url="university/how-tos/" %} how-tos {% endcontent-ref %}

{% content-ref url="university/integrations/" %} integrations {% endcontent-ref %}

{% content-ref url="university/craft.md" %} craft.md {% endcontent-ref %}

{% content-ref url="basics/FAQ.md" %} FAQ.md {% endcontent-ref %}

Looking to contribute to Webstudio?

{% content-ref url="contributing/contributions.md" %} contributions.md {% endcontent-ref %}

{% content-ref url="contributing/marketplace.md" %} marketplace.md {% endcontent-ref %}