Skip to content

Add dynamic workshop sales pages backed by Builder events - #19

Draft
zacjones93 wants to merge 2 commits into
mainfrom
zac/dynamic-workshop-pages
Draft

Add dynamic workshop sales pages backed by Builder events#19
zacjones93 wants to merge 2 commits into
mainfrom
zac/dynamic-workshop-pages

Conversation

@zacjones93

@zacjones93 zacjones93 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

What changed

  • add Builder-managed registration URL and CTA label fields to events
  • add a read-only workshop read model for published events and associated CourseBuilder products
  • expose an upcoming/live /workshops index and dynamic /workshops/[slug] sales pages
  • display event Markdown, imagery, schedule, pricing, early-bird discounts, member-eligible pricing, capacity, and sold-out state
  • add workshop navigation, metadata, responsive styling, and sitemap coverage

Why

Builder should remain the control plane for Egghead events while the main web app provides the public discovery and sales experience. This connects the existing event/product data to the standalone web app without moving Stripe or Inngest writer ownership into Phase 0.

Commerce findings

Paid event creation already creates and associates CourseBuilder Product/Price records and Stripe Product/Price objects.

The remaining AI Hero parity work is intentionally separate:

  • the Builder event form currently disables coupon creation
  • CourseBuilder's event coupon path expects an existing matching MerchantCoupon rather than provisioning a new Stripe coupon
  • AI Hero member pricing relies on entitlement/Inngest grant workflows, which Phase 0 explicitly blocks adding here

This PR reads and displays configured offer data but sends registration through the Builder-managed URL so the web app stays read-only.

Validation

  • pnpm check
  • local /workshops route returns 200
  • browser accessibility snapshot and console-error check
  • GitNexus impact review of the Builder event form, navigation, and sitemap seams

Note

Add dynamic workshop sales pages backed by Builder events

  • Adds /workshops index page listing upcoming workshops and /workshops/[slug] detail pages with hero, Markdown content, and a sticky offer card showing pricing and registration CTA.
  • Introduces data layer in workshop.ts that queries event-type content resources, joins product/price/coupon rows, and normalizes them into typed Workshop and WorkshopOffer objects.
  • Adds registrationUrl and ctaLabel fields to the Builder admin event editor and EventSchema so editors can configure outbound registration links and button copy.
  • Adds a Workshops link to the site nav and includes /workshops plus dynamic workshop slugs in the sitemap.
📊 Macroscope summarized d0cfe73. 10 files reviewed, 0 issues evaluated, 0 issues filtered, 0 comments posted

🗂️ Filtered Issues

No issues evaluated.

@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
beta-egghead Ready Ready Preview Aug 19, 2026 3:25pm
course-builder-egghead Ready Ready Preview Aug 19, 2026 3:25pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e58826b7-ec5e-4057-b989-0862da6d4fdf

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread apps/web/src/content/workshop.ts Outdated
Comment thread apps/web/src/content/workshop.ts Outdated
Comment thread apps/web/src/app/workshops/[slug]/page.tsx
Comment thread apps/web/src/content/workshop.ts Outdated
Comment thread apps/web/src/content/workshop.ts Outdated
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