fix: smooth the landing page navbar handover and open the FAQ to crawlers - #201
Merged
Conversation
…lers The two navbars swapped at different scroll points, and one of them pushed everything below the hero down by 56px in the middle of a scroll. The FAQ answers only existed after a click, so no crawler ever saw them. Also fixes the Discord card clipping, the feature rotation on mobile, and a triple GitHub star fetch.
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Member
|
@yash-sangwan |
Reserved room below the hero is a divider strip now rather than a bare band of body colour, the hero observer no longer misses a jump straight past it, and the menu caps to the viewport so its last button stays reachable.
Member
Author
|
@Rakesh-46-VR now check |
Rakesh-46-VR
approved these changes
Aug 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Scroll jerk between the two navbars
The wrapper below the hero switched its top padding from 0 to 56px the moment the mobile bar appeared, so the whole page jumped. It is held open all the time now, and the hero covers it until it is needed.
Both navbars now hand off at the same point
They used to watch different things, so the floating nav showed up while the hero was still on screen. One IntersectionObserver on the hero sentinel drives both, replacing two scroll listeners that measured the page on every frame.
The floating navbar was built mid scroll
It mounted the moment the hero went past, which meant building the whole bar on the frame the browser was already busy. It is built with the page now and just fades in.
Discord card opened off screen
The hero navbar always opened its card upward, but that navbar scrolls up with the page, so there was no room left above it. The card now measures both sides and picks the one that fits.
Discord card was invisible when it opened downward
The hero section clips its overflow, so a card hanging below the navbar got cut off. The card is portalled to the body now, the same fix the sidebar already used.
Discord arrow drew over the navbar
The arrow reaches about 112px sideways and paints above everything, so it landed on the theme toggle. It checks what is beside it now and is left out when something is in the way.
FAQ answers were invisible to search engines
All eight answers only existed after a click. They are in the page now, collapsed with CSS instead of removed, and the accordion finally has aria-expanded and aria-controls.
No FAQ structured data
The landing page is a small server shell now, which lets it output FAQPage JSON-LD built from the same data the section renders, so the two cannot drift apart.
Fake Google verification tag
Every page shipped
content="your-google-verification-code". It readsGOOGLE_SITE_VERIFICATIONfrom the server env now and is left out when that is not set.Feature text changed itself every 6 seconds on mobile
Below the lg breakpoint the image next to the list is hidden, so the timer only swapped the paragraph you were reading, and pause is tied to hover which phones never fire. Rotation now needs a wide screen and a section that is actually on screen.
The 500ms fade never ran
The image is remounted on every change, and a brand new element has nothing to fade from, so it was a hard cut. It fades in properly now.
Three GitHub star requests per page load
The cache is only written when a response lands, so all three counters missed it and all three fetched. They share one request now.
Dead scroll listener on the blog
The blog navbar tracked a sentinel on every scroll into two values nothing rendered. Removed.
How to test
pnpm dev:frontend, open/on desktop and scroll out of the hero. No jump, and the navbars swap cleanly./and search for an FAQ answer and forFAQPage. Both should be there./on a phone width. The feature text should stay put instead of cycling.api.github.comrequest, not three.Note: none of this has been checked in a real browser yet, only reasoned from the code plus the test suite.