14 SaaS Product Emails — Sonar / Product

Free React Email Weekly Digest Template

One number in the headline, three in the row, and three things that need a human. Customize it in the free React Email playground and export production-ready TSX — no sign-up.

Sample subject
Northwind, week 34: activation up 11%
Format
React Email TSX · Free
Weekly Digest React Email template preview

Template details

What this weekly digest template includes

One number in the headline, three in the row, and three things that need a human. 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 product email structure
  • Editable in the visual React Email playground
  • Free TSX source for personal and commercial projects

How to use it

  1. 1. Customize the copy and styles in the playground above.
  2. 2. Export or copy the typed TSX source.
  3. 3. Pass dynamic props and send it from a server route with your email provider.
Follow the Resend and Next.js implementation guide

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,
  Brand,
  BulletList,
  CTAButton,
  Display,
  EmailLayout,
  InlineLink,
  Kicker,
  Lead,
  Note,
  SectionTitle,
  Stat,
  StatRow,
  colors,
} from './components';

export interface WeeklyDigestEmailProps {
  brand?: Brand;
  subject?: string;
  preview?: string;
  label?: string;
  kicker?: string;
  headline?: React.ReactNode;
  lead?: React.ReactNode;
  stats?: Stat[];
  /** The three things worth ten minutes. */
  attention?: { title: string; items: React.ReactNode[] };
  cta?: { label: string; href: string };
  note?: React.ReactNode;
}

/**
 * Weekly digest — one number in the headline, three in the row, and three
 * things that actually need a human. Everything else stays in the dashboard.
 */
export function WeeklyDigestEmail({
  brand,
  subject = 'Northwind, week 34: activation up 11%',
  preview = 'Activation +11%, one funnel regression, and your top segment this week.',
  label = 'Weekly digest · Aug 17–23',
  kicker = 'Week 34 · Northwind',
  headline = (
    <>
      ACTIVATION
      <br />
      UP 11%.
    </>
  ),
  lead = 'Best week since June. The win came from mobile signups — and there’s one regression worth ten minutes.',
  stats = [
    { value: '+11%', label: 'activation' },
    { value: '24.9K', label: 'weekly actives' },
    { value: '−3.2%', label: 'week-2 retention' },
  ],
  attention = {
    title: 'Worth your attention',
    items: [
      <>
        <strong>Step 3 drop-off rose to 38%</strong> after Tuesday’s release —
        Android only.
      </>,
      <>
        <strong>Enterprise trials converted at 41%</strong>, double the account
        average.
      </>,
      <>
        <strong>API latency p95 crossed 800ms</strong> on Thursday for 22
        minutes.
      </>,
    ],
  },
  cta = {
    label: 'Open the dashboard',
    href: 'https://sonar.example.com/d/weekly',
  },
  note = (
    <>
      {'You’re getting this because you own the Northwind workspace. '}
      <InlineLink
        href="https://sonar.example.com/settings/notifications"
        color="mint"
      >
        Change to monthly
      </InlineLink>
      {'.'}
    </>
  ),
}: WeeklyDigestEmailProps = {}) {
  return (
    <EmailLayout
      brand={brand}
      subject={subject}
      preview={preview}
      label={label}
      accent="mint"
    >
      <Band tone="blue" padding="46px 32px 40px 32px">
        <Kicker color="mint">{kicker}</Kicker>
        <Display size={48} on="light">
          {headline}
        </Display>
        <Lead color={colors.paper}>{lead}</Lead>
      </Band>

      <Band padding="34px 32px">
        <StatRow stats={stats} />
        <SectionTitle size={22}>{attention.title}</SectionTitle>
        <BulletList items={attention.items} marker="orange" />
        <CTAButton href={cta.href} background="ink" color="mint">
          {cta.label}
        </CTAButton>
        <Note>{note}</Note>
      </Band>
    </EmailLayout>
  );
}

export default WeeklyDigestEmail;

Related templates

More from 14 SaaS Product Emails — Sonar.

View the complete bundle