Skip to content

feat: Add highlighted events section to Breakpoint homepage#1648

Open
h4rkl wants to merge 6 commits into
mainfrom
feat/breakpoint-highlighted-events
Open

feat: Add highlighted events section to Breakpoint homepage#1648
h4rkl wants to merge 6 commits into
mainfrom
feat/breakpoint-highlighted-events

Conversation

@h4rkl

@h4rkl h4rkl commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Problem

The events team wants side events surfaced on the Breakpoint site:

  • Highlighted events (curated summits pre/during BP) should stand out with their Luma cover images
  • Community events (open-submission calendar) just need a link out to the calendar

First highlighted event: BlockZero 2026.

Changes

  • New "Explore events across the Breakpoint ecosystem" homepage section (between the second marquee and Highlights), matching the BP26 pre-event homepage design at desktop/tablet/mobile
  • getHighlightedEvents() (src/content/events/luma.ts) pulls the Breakpoint 2026 Luma calendar (luma.com/bp26) plus pinned event URLs (currently BlockZero, until it lands on the calendar). Main conference event is excluded, past events dropped, results deduped/sorted. 10s timeout + graceful empty fallback (the section simply hides if Luma is down), 30-min ISR-style caching
  • Card carousel with Luma covers as full-bleed backgrounds behind a scrim; time/date rendered in the event's timezone; whole card links to the Luma event page
  • CTAs: See the full schedule/breakpoint/schedule, See community eventsluma.com/BP-SideEvents
  • next/image remote patterns added for Luma CDNs; optional LUMA_PRIVATE_API_KEY documented (public calendars work without it)
  • New events i18n strings (en source; Lingo handles other locales)

Notes

  • "The Luma calendar" is assumed to be the BP26 calendar (evgrp-f8F1bDAHhBNDM1f, same one solana.com/events uses). If highlighted events end up on a separate calendar it's a one-constant swap in src/content/links.ts; adding/removing pinned events is a one-line change there too
  • The FAQ banner shown in the same Figma frame belongs to the wider pre-event homepage redesign and is out of scope here

Verified locally: renders with live Luma data at 1440/768/375, tsc/eslint/prettier/vitest all pass.

🤖 Generated with Claude Code

Pulls highlighted side events from the Breakpoint 2026 Luma calendar
(plus pinned event URLs) and renders them as a card carousel with Luma
cover images, matching the BP26 pre-event homepage design. Community
events link out to the Luma side-events calendar.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@h4rkl h4rkl requested review from ZYJLiu and jacobcreech as code owners July 6, 2026 19:55
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
solana-com-breakpoint-2 Ready Ready Preview, Comment Jul 10, 2026 8:46pm
5 Skipped Deployments
Project Deployment Actions Updated (UTC)
solana-com Skipped Skipped Comment Jul 10, 2026 8:46pm
solana-com-accelerate Skipped Skipped Jul 10, 2026 8:46pm
solana-com-docs Skipped Skipped Jul 10, 2026 8:46pm
solana-com-media Skipped Skipped Jul 10, 2026 8:46pm
templates Skipped Skipped Jul 10, 2026 8:46pm

Request Review

@greptile-apps

greptile-apps Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds a new "Explore events across the Breakpoint ecosystem" section to the Breakpoint 2026 homepage, fetching highlighted events from the BP26 Luma calendar and rendering them in an accessible card carousel with locale-aware date formatting and graceful empty-state handling.

  • src/content/events/luma.ts: Paginated Luma calendar fetch with a 10 s timeout, cursor-loop cycle detection, deduplication, main-event exclusion, past-event filtering, and ISR-style unstable_cache wrapping in production.
  • EventsCarousel.tsx: Client-side carousel with computed gap-aware scrolling, ARIA carousel role/labelling, and full-bleed Luma cover images via next/image.
  • packages/i18n/messages/breakpoint/en/breakpoint.json: Adds events.headline, events.scheduleCta, and events.communityCta strings \u2014 but scheduleCta is never consumed (see inline comment).

Confidence Score: 4/5

Safe to merge once the missing schedule CTA is resolved or intentionally deferred.

The scheduleCta i18n key is added to the JSON and called out in the PR description as a shipped feature, but there is no corresponding button in the component and the key is absent from the TypeScript type. All other logic — pagination, caching, carousel rendering, date formatting — looks correct.

packages/i18n/messages/breakpoint/en/breakpoint.json and apps/breakpoint/src/content/page.ts — the scheduleCta string was added to the JSON source but is not typed or wired into the component.

Important Files Changed

Filename Overview
packages/i18n/messages/breakpoint/en/breakpoint.json Adds events i18n keys; scheduleCta is defined here but missing from the TypeScript type and never consumed by any component.
apps/breakpoint/src/content/page.ts Type for events block only declares headline and communityCta; scheduleCta from the JSON is not typed here, confirming it is unreachable.
apps/breakpoint/src/content/events/luma.ts Adds paginated Luma calendar fetching with timeout, deduplication, and ISR-style caching; logic is solid and gracefully degrades on API failure.
apps/breakpoint/src/components/sections/EventsCarousel.tsx Client carousel with accessible ARIA roles, computed gap-aware scroll logic, and locale-aware date formatting; renders correctly.
apps/breakpoint/src/components/sections/EventsSection.tsx Thin async server component that fetches events and renders null when the list is empty; straightforward.
apps/breakpoint/next.config.ts Adds remote image patterns for Luma CDNs; the **.lu.ma wildcard covers all subdomains including cdn.lu.ma.

Reviews (4): Last reviewed commit: "feat: Change aspect ratio of event cover..." | Re-trigger Greptile

Comment thread apps/breakpoint/next.config.ts Outdated
Comment thread apps/breakpoint/src/components/sections/EventsCarousel.tsx
Comment thread apps/breakpoint/src/content/events/luma.ts Outdated
@vercel vercel Bot temporarily deployed to Preview – solana-com-docs July 10, 2026 02:44 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-media July 10, 2026 02:44 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com July 10, 2026 02:44 Inactive
@vercel vercel Bot temporarily deployed to Preview – templates July 10, 2026 02:44 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-accelerate July 10, 2026 02:44 Inactive
@vercel vercel Bot temporarily deployed to Preview – templates July 10, 2026 02:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-accelerate July 10, 2026 02:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com July 10, 2026 02:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-media July 10, 2026 02:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-docs July 10, 2026 02:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-accelerate July 10, 2026 02:56 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-media July 10, 2026 02:56 Inactive
@vercel vercel Bot temporarily deployed to Preview – templates July 10, 2026 02:56 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-docs July 10, 2026 20:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – templates July 10, 2026 20:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-accelerate July 10, 2026 20:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-media July 10, 2026 20:45 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com July 10, 2026 20:45 Inactive
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