Skip to content

feat: add RTSH and RTSS event pages#116

Open
ValentinAhrend wants to merge 2 commits intomainfrom
feat/rtss-rtsh
Open

feat: add RTSH and RTSS event pages#116
ValentinAhrend wants to merge 2 commits intomainfrom
feat/rtss-rtsh

Conversation

@ValentinAhrend
Copy link
Copy Markdown
Contributor

@ValentinAhrend ValentinAhrend commented Apr 29, 2026

Summary

  • Adds new event pages at /eventpage/rtsh and /eventpage/rtss with hero, sponsors, and supporting assets
  • Includes related navigation, layout, and home/join-start tweaks bundled in the same commit

Test plan

  • Visit /eventpage/rtsh and verify hero, sections, and assets render
  • Visit /eventpage/rtss and verify hero, sections, and assets render
  • Check navigation entries link correctly
  • Smoke-test home and join-start pages for regressions

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added dedicated event pages for RTSH and RTSS events featuring timelines, FAQs, partner showcases, and testimonials.
  • Improvements

    • Migrated event navigation from external links to in-app routing for faster, seamless page transitions and improved browsing experience.

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 29, 2026

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

Project Deployment Actions Updated (UTC)
start-munich Ready Ready Preview, Comment Apr 29, 2026 10:16pm

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 29, 2026

Warning

Rate limit exceeded

@ValentinAhrend has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 48 minutes and 3 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 393bfaf3-93b0-4982-9f29-369e33149af2

📥 Commits

Reviewing files that changed from the base of the PR and between 95dd84e and 603fb37.

📒 Files selected for processing (1)
  • app/for-partners/PhotoGallery.tsx
📝 Walkthrough

Walkthrough

This PR introduces two new event pages (/eventpage/rtsh and /eventpage/rtss) with metadata, hero sections, timelines, partner logos, testimonials, FAQs, and CTAs. It refactors navigation to route internally to these pages instead of external URLs and restructures the root layout to use a SiteChrome component that conditionally renders Navigation/Footer based on the current route.

Changes

Cohort / File(s) Summary
Event Pages
app/eventpage/rtsh/page.tsx, app/eventpage/rtss/page.tsx
New Next.js event pages with structured content (facts, timelines, partner logos, testimonials, FAQs), metadata for SEO/OpenGraph, interactive components (accordion, CTA buttons), embedded forms, and footer navigation.
Event Page Components
app/eventpage/rtss/RtssHeroTitle.tsx
New reusable hero title component with responsive uppercase heading and pointer-events handling.
Navigation & Routing
app/events/EventsContent.tsx, components/Navigation.tsx, app/for-partners/PhotoGallery.tsx
Updated event card and navigation link destinations from external URLs (summit.startmunich.de, hack.startmunich.de) to internal routes (/eventpage/rtss, /eventpage/rtsh).
Layout & Site Chrome
app/layout.tsx, components/SiteChrome.tsx
Consolidated site-wide chrome behavior: root layout now delegates Navigation/Footer rendering to new SiteChrome component, which conditionally hides them on event pages and shows them on all other routes.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • niklas1simakov
  • SimonBurmer

Poem

🐰 Hops through new event pages so grand,
With timelines and partners, all planned,
No more external links to roam,
The SiteChrome brings navigation home!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding two new event pages (RTSH and RTSS) with supporting components and layout updates.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch feat/rtss-rtsh

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
Review rate limit: 0/1 reviews remaining, refill in 48 minutes and 3 seconds.

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (3)
app/eventpage/rtss/RtssHeroTitle.tsx (1)

4-4: Consider documenting the complex font-size calculation.

The nested min(clamp()) expressions provide precise responsive scaling but are quite complex. Consider adding a comment explaining the sizing strategy or extracting these values to named CSS variables/design tokens for improved maintainability.

💡 Example: Add explanatory comment
+      {/* Font size scales fluidly between 3rem-5.25rem (mobile) and 5rem-8rem (desktop),
+          capped at container width divided by character count for optimal fit */}
       <h1 className="mt-5 flex w-[calc(100vw-2rem)] max-w-full flex-col items-center text-center text-[min(clamp(3rem,17vw,5.25rem),calc((100vw-2rem)/7.2))] font-black uppercase leading-[0.86] tracking-normal text-white lg:mt-8 lg:block lg:whitespace-nowrap lg:text-[min(clamp(5rem,8.5vw,8rem),calc((100vw-2rem)/12.2))] lg:leading-none">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/eventpage/rtss/RtssHeroTitle.tsx` at line 4, The long responsive
font-size expression on the H1 in RtssHeroTitle.tsx (the class with
text-[min(clamp(3rem,17vw,5.25rem),calc((100vw-2rem)/7.2))] and the lg: text
variant) is hard to read and maintain; either add a concise comment above the H1
describing the sizing strategy (what each clamp and calc targets and breakpoint
intent) or extract the complex expressions into named CSS variables/design
tokens (e.g., --hero-font-base and --hero-font-lg) and replace the inline
utility with those variables so the intent is documented and values are
reusable.
app/eventpage/rtsh/page.tsx (1)

232-240: Let the partner logos lazy-load.

This section sits well below the fold, so loading="eager" pushes a whole batch of non-critical images into the initial network queue. I'd drop it here and reserve eager/priority loading for hero assets only.

⚡ Suggested cleanup
             <Image
               src={partner.logo}
               alt={partner.name}
               width={260}
               height={120}
-              loading="eager"
               className={`h-auto w-auto object-contain ${
                 partner.compact ? "max-h-16 max-w-28" : "max-h-14 max-w-44"
               }`}
             />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/eventpage/rtsh/page.tsx` around lines 232 - 240, The Image element
rendering partner logos currently forces loading="eager", which causes
below-the-fold logos to load immediately; remove the loading="eager" attribute
(or set loading="lazy") on the Image that uses partner.logo / partner.name /
partner.compact so logos load lazily and only hero/priority assets use
eager/priority loading.
components/SiteChrome.tsx (1)

8-15: Centralize the standalone event route list.

These exact route strings are now duplicated across components/SiteChrome.tsx, components/Navigation.tsx, app/events/EventsContent.tsx, and app/for-partners/PhotoGallery.tsx. The partial RTSH update in PhotoGallery is a good example of the drift that can happen when they stay hardcoded in multiple places.

♻️ Suggested cleanup
+const STANDALONE_EVENT_ROUTES = new Set([
+  "/eventpage/rtss",
+  "/eventpage/rtsh",
+])
+
 export default function SiteChrome({ children }: { children: ReactNode }) {
   const pathname = usePathname()
-  const isStandaloneEventPage =
-    pathname === "/eventpage/rtss" || pathname === "/eventpage/rtsh"
+  const isStandaloneEventPage = STANDALONE_EVENT_ROUTES.has(pathname)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@components/SiteChrome.tsx` around lines 8 - 15, The standalone event route
strings are duplicated; extract them into a single exported constant (e.g.,
STANDALONE_EVENT_ROUTES) and import it where needed; update SiteChrome (replace
the inline isStandaloneEventPage logic that uses usePathname with a membership
check against the imported STANDALONE_EVENT_ROUTES), and likewise update
components Navigation, EventsContent, and PhotoGallery to use that same constant
so all places reference a single source of truth.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@app/eventpage/rtsh/page.tsx`:
- Around line 263-265: Remove the leftover placeholder date string rendered in
the hero by replacing or deleting the hardcoded text node "29.____ 30th November
2025" inside the <p> element (the one with className "text-base font-bold"
nested in the div with className "mt-28 max-w-2xl sm:mt-36 lg:mt-[28vh]").
Either output the correct final date string or remove the entire <p> element if
no date should be shown; ensure no placeholder text remains in the JSX.

In `@app/eventpage/rtss/page.tsx`:
- Around line 254-267: The RTSS date is inconsistent: the RTSS page (page.tsx)
shows the hardcoded string "9th December 2025" while the EventsContent component
(EventsContent.tsx) still lists RTSS in October/mobile timeline; pick the
correct date (confirm product decision) and make both places match by updating
the date string and any timeline grouping—specifically change the hardcoded "9th
December 2025" in the RTSS page or update the RTSS entry and its month grouping
in EventsContent.tsx so both components display the same date and month.

In `@app/for-partners/PhotoGallery.tsx`:
- Around line 20-29: The RTSH gallery cards in the eventPhotos array still link
to the legacy route (/events/rtsh) causing broken links; locate the eventPhotos
constant in PhotoGallery.tsx and update any RTSH entries (look for items with
captions mentioning "RTSH" or ids associated with RTSH) to use the migrated
route "/eventpage/rtsh" (and scan for any other occurrences of "/events/rtsh" in
that file to replace), ensuring all event photo objects consistently use the new
/eventpage/… path.

---

Nitpick comments:
In `@app/eventpage/rtsh/page.tsx`:
- Around line 232-240: The Image element rendering partner logos currently
forces loading="eager", which causes below-the-fold logos to load immediately;
remove the loading="eager" attribute (or set loading="lazy") on the Image that
uses partner.logo / partner.name / partner.compact so logos load lazily and only
hero/priority assets use eager/priority loading.

In `@app/eventpage/rtss/RtssHeroTitle.tsx`:
- Line 4: The long responsive font-size expression on the H1 in
RtssHeroTitle.tsx (the class with
text-[min(clamp(3rem,17vw,5.25rem),calc((100vw-2rem)/7.2))] and the lg: text
variant) is hard to read and maintain; either add a concise comment above the H1
describing the sizing strategy (what each clamp and calc targets and breakpoint
intent) or extract the complex expressions into named CSS variables/design
tokens (e.g., --hero-font-base and --hero-font-lg) and replace the inline
utility with those variables so the intent is documented and values are
reusable.

In `@components/SiteChrome.tsx`:
- Around line 8-15: The standalone event route strings are duplicated; extract
them into a single exported constant (e.g., STANDALONE_EVENT_ROUTES) and import
it where needed; update SiteChrome (replace the inline isStandaloneEventPage
logic that uses usePathname with a membership check against the imported
STANDALONE_EVENT_ROUTES), and likewise update components Navigation,
EventsContent, and PhotoGallery to use that same constant so all places
reference a single source of truth.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d5619547-b540-4578-9bd4-e655ac612d53

📥 Commits

Reviewing files that changed from the base of the PR and between 3647903 and 95dd84e.

⛔ Files ignored due to path filters (34)
  • public/eventpage/rtsh/hero.jpg is excluded by !**/*.jpg
  • public/eventpage/rtsh/icon-calendar.png is excluded by !**/*.png
  • public/eventpage/rtsh/icon-demo.png is excluded by !**/*.png
  • public/eventpage/rtsh/icon-format.png is excluded by !**/*.png
  • public/eventpage/rtsh/icon-location.png is excluded by !**/*.png
  • public/eventpage/rtsh/icon-participants.png is excluded by !**/*.png
  • public/eventpage/rtsh/icon-partners.png is excluded by !**/*.png
  • public/eventpage/rtsh/icon-prize.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-asklio.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-aws.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-bfl.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-ewor.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-langdoc.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-lovable.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-oai.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-oneware.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-qplix.png is excluded by !**/*.png
  • public/eventpage/rtsh/logo-white.png is excluded by !**/*.png
  • public/eventpage/rtss/chiara.jpg is excluded by !**/*.jpg
  • public/eventpage/rtss/logo-ahead.png is excluded by !**/*.png
  • public/eventpage/rtss/logo-anybill.png is excluded by !**/*.png
  • public/eventpage/rtss/logo-b2venture.png is excluded by !**/*.png
  • public/eventpage/rtss/logo-dtcf.svg is excluded by !**/*.svg
  • public/eventpage/rtss/logo-fly.png is excluded by !**/*.png
  • public/eventpage/rtss/logo-reply.png is excluded by !**/*.png
  • public/eventpage/rtss/logo-siemens.png is excluded by !**/*.png
  • public/eventpage/rtss/logo-zoho.png is excluded by !**/*.png
  • public/eventpage/rtss/mountain.png is excluded by !**/*.png
  • public/eventpage/rtss/niclas.jpg is excluded by !**/*.jpg
  • public/eventpage/rtss/seddik.jpg is excluded by !**/*.jpg
  • public/eventpage/rtss/what.jpg is excluded by !**/*.jpg
  • public/eventpage/rtss/why-attend.jpg is excluded by !**/*.jpg
  • public/eventpage/rtss/why-pitch.jpg is excluded by !**/*.jpg
  • public/eventpage/rtss/yagmur.jpg is excluded by !**/*.jpg
📒 Files selected for processing (9)
  • app/eventpage/rtsh/page.tsx
  • app/eventpage/rtss/RtssHeroTitle.tsx
  • app/eventpage/rtss/page.tsx
  • app/events/EventsContent.tsx
  • app/for-partners/PhotoGallery.tsx
  • app/layout.tsx
  • components/Navigation.tsx
  • components/SiteChrome.tsx
  • tsconfig.tsbuildinfo

Comment thread app/eventpage/rtsh/page.tsx
Comment thread app/eventpage/rtss/page.tsx
Comment thread app/for-partners/PhotoGallery.tsx
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