Skip to content

Add subscriber funnel: countdown timer, admin filters, follow-up emai…#11

Open
farisaziz12 wants to merge 4 commits into
mainfrom
feature/subscriber-funnel-and-admin-improvements
Open

Add subscriber funnel: countdown timer, admin filters, follow-up emai…#11
farisaziz12 wants to merge 4 commits into
mainfrom
feature/subscriber-funnel-and-admin-improvements

Conversation

@farisaziz12

Copy link
Copy Markdown
Owner

…ls, announcements, and digest

Workshop improvements:

  • Add subscriberCount, attendees, followUpSentAt fields to workshopInstance schema
  • Store attendee records in Sanity on email gate submit (subscribe API)
  • Add CountdownBanner to WorkshopAttend (green/amber/red urgency tiers)
  • Add follow-up email API endpoint with admin auth guard

Admin dashboard overhaul:

  • Add tabbed navigation: Workshops / Announce Event / Send Digest
  • Show subscriber count per workshop instance
  • Add status filter tabs (All/Open/Upcoming/Closed) + search
  • Add per-instance "Send Follow-up" button for closed workshops
  • Add event announcement composer (select event + personal note)
  • Add digest sender (auto-populates upcoming events + blog posts)

Subscriber capture expansion:

  • Add GeneralSubscribe to event detail pages (/events/[slug])
  • Add GeneralSubscribe to speaking page

New email templates:

  • EventAnnouncementEmail — for conference announcements
  • DigestEmail — periodic roundup of events + blog posts

New API endpoints:

  • POST /api/workshop/send-followup — send follow-up to workshop attendees
  • POST /api/admin/send-announcement — blast event announcement to all subscribers
  • POST /api/admin/send-digest — send digest to all subscribers

…ls, announcements, and digest

Workshop improvements:
- Add subscriberCount, attendees, followUpSentAt fields to workshopInstance schema
- Store attendee records in Sanity on email gate submit (subscribe API)
- Add CountdownBanner to WorkshopAttend (green/amber/red urgency tiers)
- Add follow-up email API endpoint with admin auth guard

Admin dashboard overhaul:
- Add tabbed navigation: Workshops / Announce Event / Send Digest
- Show subscriber count per workshop instance
- Add status filter tabs (All/Open/Upcoming/Closed) + search
- Add per-instance "Send Follow-up" button for closed workshops
- Add event announcement composer (select event + personal note)
- Add digest sender (auto-populates upcoming events + blog posts)

Subscriber capture expansion:
- Add GeneralSubscribe to event detail pages (/events/[slug])
- Add GeneralSubscribe to speaking page

New email templates:
- EventAnnouncementEmail — for conference announcements
- DigestEmail — periodic roundup of events + blog posts

New API endpoints:
- POST /api/workshop/send-followup — send follow-up to workshop attendees
- POST /api/admin/send-announcement — blast event announcement to all subscribers
- POST /api/admin/send-digest — send digest to all subscribers
@vercel

vercel Bot commented Mar 23, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
portfolio-website Ready Ready Preview, Comment Mar 30, 2026 9:03pm

Request Review

The >=20.0.0 constraint caused Vercel to auto-upgrade to Node 24,
which @astrojs/vercel warns is not supported by Vercel Serverless
Functions.
The >=20.0.0 constraint caused Vercel to auto-upgrade to Node 24,
which @astrojs/vercel warns is not supported by Vercel Serverless
Functions.
…data

- React island AdminDashboard replaces inline vanilla JS (proper state
  management, no document.querySelector)
- New Subscribers tab: fetches contacts from Resend audience API,
  shows active/unsubscribed/total breakdown, searchable table with
  email, name, date, and status
- Live subscriber count in header (fetched from Resend, not Sanity)
- New /api/admin/subscribers endpoint for authenticated subscriber list
- Pin Node.js engine to 22.x for Vercel compatibility
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.

1 participant