perf: improve page load and rendering performance#294
Draft
Conversation
- GPU-accelerate background overlay with will-change/translateZ(0) - Memoize KeyValueRow (rendered 100+ times per detail page) - Replace slow wildcard [class*='htw-'] CSS selectors with specific classes - Preload custom fonts to reduce FOUT - Reduce accent-glow blur radius from 20px to 10px Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Skip SSR OG data fetching for non-bot user agents (eliminates 3 network requests on every click from table to detail page) - Add Cache-Control header for real users (s-maxage=60, stale-while-revalidate) - Parallelize block explorer URL lookups in ContentDetailsCard - Memoize MessageSummaryRow (rendered 40-100x per table) - Enable Link prefetch on message table rows Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
54ab0ee to
456f63a
Compare
5aebde5 to
456f63a
Compare
4 tasks
paulbalaji
reviewed
Mar 18, 2026
|
|
||
| // Cache the response for real users (instant navigation) while bots get fresh data | ||
| if (!isBot) { | ||
| ctx.res.setHeader('Cache-Control', 'public, s-maxage=60, stale-while-revalidate=300'); |
Collaborator
There was a problem hiding this comment.
public, s-maxage=60 on the non-bot HTML is cache-unsafe here. Because the response varies by user agent but doesn’t have a safe cache key split, a CDN can cache the ogData: null human response and serve it to bots, breaking OG tags in the common user-visit-then-share flow. In #295 this is fixed by avoiding shared HTML caching on this route rather than relying on bot/human cache variation.
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.
Summary
Rendering
will-change: transform+translateZ(0)on the grid overlay to eliminate scroll repaints from mask compositingKeyValueRow(100+ per detail page),MessageSummaryRow(40-100 per table)[class*='htw-']attribute selectors replaced with specific class selectors for widget overridesLoading
<link rel="preload">to reduce FOUTTest plan
🤖 Generated with Claude Code