Skip to the galleries
← Back to the design system

Transactional emails

Nine messages built on one table-based layout ( src/lib/email/layout.ts) and one token mirror ( src/lib/email/tokens.ts). Inline styles carry the light scheme so a client with no dark support still renders a finished email; clients that report prefers-color-scheme: dark swap palette through the class overrides in the document head. Switch your OS appearance to see it — the iframes follow the system, not the app theme toggle.

Privacy rule, visible in every template: no email ever contains a food, a severity or a guest-level detail. Links only.

Welcome / confirm signup

A new account is created and still needs email confirmation.

src/lib/email/templates/auth-welcome.ts

Subject
Confirm your email and start your list
Mobile · 390px
Desktop · 600px
Plain-text version
Welcome, Maya

Picky Eaters keeps one private list of the food you avoid — allergies, intolerances, ARFID, and plain dislikes — and applies it for you when you join a meal.

Confirm your address to finish setting up your account.

How the first list works: add a food, pick how it affects you, done. An allergy blocks a dish. An intolerance warns. A dislike only suggests. Nothing you add is public.

You are never 'the difficult one': hosts see what works for the whole group, not who said what.

If you didn't create this account, you can safely ignore this email.

Confirm your email: https://www.picky-eaters.app/auth/callback?type=signup&token=sample-confirm-token

—
Picky Eaters — your food list stays private.

Event invite

A host invites someone to an event by link or email.

src/lib/email/templates/event-invite.ts

Subject
Nora invited you to Sunday roast
Mobile · 390px
Desktop · 600px
Plain-text version
Nora invited you to Sunday roast

Accept the invite and your food list is applied automatically — you don't have to explain anything to anyone.

Event: Sunday roast
When: Sunday 27 September, 2:00 PM
Where: Nora's place, 14 Alder Street
Group: Alder Street dinners

Nora never sees your list. The app only shows which dishes work for the group as a whole.

Can't make it? Open the invite and decline — it takes one tap.

Accept invite: https://www.picky-eaters.app/invite/AX7K2M

—
Picky Eaters — your food list stays private.

Event reminder

The day before an event, to everyone who accepted.

src/lib/email/templates/event-reminder.ts

Subject
Tomorrow: Sunday roast
Mobile · 390px
Desktop · 600px
Plain-text version
Sunday roast is tomorrow

If your list changed since you accepted, update it now and the event picks it up on its own.

When: Tomorrow, 2:00 PM
Host: Nora
Where: Nora's place, 14 Alder Street

Plans changed? Update your answer in the app so the host's count stays right.

Open the event: https://www.picky-eaters.app/events/evt-sunday-roast

—
Picky Eaters — your food list stays private.

Event reminder (host)

Same reminder, host variant: review the menu result.

src/lib/email/templates/event-reminder.ts

Subject
Tomorrow: Sunday roast
Mobile · 390px
Desktop · 600px
Plain-text version
Sunday roast is tomorrow

Open the event to check how the menu lands for everyone who accepted. Dishes are marked as safe, worth a warning, or blocked — no names attached.

When: Tomorrow, 2:00 PM
Host: Nora

Plans changed? Update your answer in the app so the host's count stays right.

Review the menu: https://www.picky-eaters.app/events/evt-sunday-roast

—
Picky Eaters — your food list stays private.

Group invite

Someone adds you to a persistent group.

src/lib/email/templates/group-invite.ts

Subject
Theo added you to Alder Street dinners
Mobile · 390px
Desktop · 600px
Plain-text version
Join Alder Street dinners

Theo invited you to a group on Picky Eaters. Join once and every meal the group plans already accounts for your list.

Group: Alder Street dinners
Members: 6 people

Joining shares nothing: other members see the group's combined result for a menu, never your list or your reasons.

Not your group? Ignore this email and nothing happens.

Join the group: https://www.picky-eaters.app/groups/join/GRP42Q

—
Picky Eaters — your food list stays private.

Friend request

Someone sends a friend request. Mutual acceptance required.

src/lib/email/templates/friend-request.ts

Subject
Theo wants to connect on Picky Eaters
Mobile · 390px
Desktop · 600px
Plain-text version
Theo wants to connect

Theo sent you a friend request on Picky Eaters (you are both in Alder Street dinners).

Being friends makes planning a meal together quicker — invites, groups and menu checks skip the back and forth.

Both sides have to accept. Until then neither of you can see anything about the other's list.

Don't know them? Ignore the request and they are never told why.

See the request: https://www.picky-eaters.app/groups/friends

—
Picky Eaters — your food list stays private.

Friend accepted

The other side accepts your friend request.

src/lib/email/templates/friend-accepted.ts

Subject
Theo accepted your request
Mobile · 390px
Desktop · 600px
Plain-text version
You and Theo are connected

Theo accepted your friend request. You can now invite each other to groups and events, and a shared menu is checked against both lists automatically.

You can disconnect at any time from their profile in the app.

Plan something together: https://www.picky-eaters.app/groups/friends/theo

—
Picky Eaters — your food list stays private.

List shared

Someone deliberately shares their own list with you.

src/lib/email/templates/list-shared.ts

Subject
Maya shared their food list with you
Mobile · 390px
Desktop · 600px
Plain-text version
Maya shared their list with you

Maya shared their food list with you for Sunday lunch. It opens in the app, so it stays between the two of you.

A list is private by default — this one was shared on purpose, and they can stop sharing it whenever they want.

Please keep it to yourself: don't forward this email or the list.

Open the list: https://www.picky-eaters.app/list/shared/SHR9PL

—
Picky Eaters — your food list stays private.