14 SaaS Product Emails — Sonar / Collaboration
Free React Email Team Invite Template
The workspace sold in three numbers, with the inviter’s own note kept verbatim. Customize it in the free React Email playground and export production-ready TSX — no sign-up.
- Sample subject
- Maya invited you to the Northwind workspace
- Format
- React Email TSX · Free

Template details
What this team invite template includes
The workspace sold in three numbers, with the inviter’s own note kept verbatim. Customize it in the free React Email playground and export production-ready TSX — no sign-up. The source is standard TypeScript and React Email, so it can be sent with Resend or rendered to HTML for another email provider.
- Production-ready collaboration email structure
- Editable in the visual React Email playground
- Free TSX source for personal and commercial projects
How to use it
- 1. Customize the copy and styles in the playground above.
- 2. Export or copy the typed TSX source.
- 3. Pass dynamic props and send it from a server route with your email provider.
React Email TSX source
Free for personal, commercial, and client projects under the site license.
View full source code
import * as React from 'react';
import {
Band,
BodyText,
Brand,
colors,
CTAButton,
Display,
EmailLayout,
Kicker,
Lead,
Note,
Stat,
StatRow,
} from './components';
export interface TeamInviteEmailProps {
brand?: Brand;
subject?: string;
preview?: string;
label?: string;
kicker?: string;
headline?: React.ReactNode;
lead?: React.ReactNode;
/** What they are joining, in numbers. */
stats?: Stat[];
/** The inviter's own words. */
quote?: React.ReactNode;
cta?: { label: string; href: string };
note?: React.ReactNode;
}
/**
* Team invite — the workspace sold in three numbers, with the inviter's note
* kept verbatim because that is the part that gets it accepted.
*/
export function TeamInviteEmail({
brand,
subject = 'Maya invited you to the Northwind workspace',
preview = 'You’ve got a seat on Northwind’s Sonar workspace — 14 dashboards inside.',
label = 'Invitation',
kicker = 'You’ve been invited',
headline = (
<>
MAYA WANTS
<br />
YOU IN THE
<br />
DASHBOARD.
</>
),
lead = (
<>
Maya Okonjo (Head of Growth) added you to <strong>Northwind</strong> on
Sonar as an <strong>Editor</strong>.
</>
),
stats = [
{ value: '14', label: 'dashboards' },
{ value: '9', label: 'teammates' },
{ value: '2.1M', label: 'events / mo' },
],
quote = '“Starting with the Activation funnel — I want your read on the step-3 drop before Thursday.” — Maya',
cta = {
label: 'Accept invitation',
href: 'https://sonar.example.com/invite/9kd21',
},
note = 'This invite expires in 7 days. You’ll join with an Editor seat; billing stays on Northwind’s plan.',
}: TeamInviteEmailProps = {}) {
return (
<EmailLayout
brand={brand}
subject={subject}
preview={preview}
label={label}
accent="lime"
>
<Band tone="lime" padding="52px 32px 46px 32px">
<Kicker color={colors.ink}>{kicker}</Kicker>
<Display size={46}>{headline}</Display>
<Lead>{lead}</Lead>
</Band>
<Band padding="36px 32px">
<StatRow stats={stats} />
<BodyText>{quote}</BodyText>
<CTAButton href={cta.href}>{cta.label}</CTAButton>
<Note>{note}</Note>
</Band>
</EmailLayout>
);
}
export default TeamInviteEmail;
Related templates
More from 14 SaaS Product Emails — Sonar.


