Skip to content

Newsletter: separate email subject/preview from SEO title, fix footer - #1344

Merged
mbifulco merged 4 commits into
mainfrom
feat/newsletter-subject-preview
Nov 3, 2026
Merged

mbifulco merged 4 commits into
mainfrom
feat/newsletter-subject-preview

Conversation

@mbifulco

@mbifulco mbifulco commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Summary

Inbox copy separate from search copy

  • New optional subject and previewText frontmatter on newsletters. When present, they override title and excerpt in the Resend broadcast only. The web page, OG cards, and search metadata keep using title/excerpt.
  • The subject is computed once (subject ?? title) and drives both the broadcast subject and the cover image alt text.

Footer

  • Adds a "hit reply" prompt to the sign-off. Replies go to hello@mikebifulco.com.
  • "Share" now says forward-or-send-to /subscribe instead of linking the /newsletter archive.
  • The layout's mikebifulco.com link points at the homepage, so /newsletter isn't linked twice.
  • Cover image alt text is the subject line instead of "Newsletter cover image".

Dependencies

  • pnpm up -i -L bumps, including Next 16.4.4, tRPC 11.22.1, react-email 6.11.6, resend 6.37.0, and posthog.
  • pnpm-workspace.yaml override bumped to next: 16.4.4 to match. It was still pinning 16.4.3.

Test plan

  • tsc --noEmit
  • Unit tests: 351 passing
  • pnpm build: 739 pages
  • Rendered NewsletterEmail. Links are only /subscribe, the homepage, and unsubscribe; alt text uses the title.
  • Sync a draft with subject/previewText set and check the broadcast in Resend before sending.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TrbJoZMm1Pmxc4FvUCRckM

mbifulco and others added 4 commits November 3, 2026 08:22
Optional `subject` and `previewText` frontmatter override `title` and
`excerpt` in the Resend broadcast only, so search titles and inbox
subject lines can be written for their own audiences.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TrbJoZMm1Pmxc4FvUCRckM
…oter

- Add a "hit reply" prompt to the newsletter sign-off
- Share link goes to /subscribe instead of the /newsletter archive
- Layout's mikebifulco.com link goes to the homepage, so /newsletter
  isn't linked twice
- Cover image alt text uses the email subject (falling back to title)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TrbJoZMm1Pmxc4FvUCRckM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TrbJoZMm1Pmxc4FvUCRckM
Copilot AI balanced review requested due to automatic review settings November 3, 2026 13:33
@vercel

vercel Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
mikebifulco-com-bnbu Ready Ready Preview Nov 3, 2026 1:40pm UTC

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are recorded for the newsletter inbox-copy, footer messaging, and dependency updates.

No open issues 🎉

1 file not reviewed
  • pnpm-lock.yaml: Generated file
What changed in this PR

Separates newsletter inbox copy from web and SEO metadata in the Resend publishing flow, updates email footer messaging, and refreshes dependencies.

Changes:

  • Adds optional subject and previewText fields with title/excerpt fallbacks; reuses the resolved subject for cover-image alt text.
  • Adds a reply prompt and updates footer links to the subscription page and homepage.
  • Updates dependencies, aligns the Next.js override, and switches generated type imports to build-output paths.
File Description
src/​utils/​email/​templates/​NewsletterEmail.tsx Uses title-based image alt text and updates reply/share messaging.
src/​utils/​email/​templates/​EmailLayout.tsx Points the site-name footer link to the homepage.
src/​data/​content-types.ts Defines optional newsletter subject and preview fields.
scripts/​sync-newsletter-to-resend.ts Applies inbox-copy overrides when rendering and syncing broadcasts.
pnpm-workspace.yaml Aligns the Next.js override to 16.4.4.
pnpm-lock.yaml Records updated dependency resolutions.
package.json Updates application and development dependencies.
next-env.d.ts References generated types under .next/types.

Review effort: Balanced

@mbifulco
mbifulco enabled auto-merge November 3, 2026 13:38
@mbifulco
mbifulco merged commit 9a70da3 into main Nov 3, 2026
9 checks passed
@mbifulco
mbifulco deleted the feat/newsletter-subject-preview branch November 3, 2026 13:41

This branch was successfully deployed

1 active deployment
Preview — fb75b8ac Deployed Nov 3, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants