⚡ Bolt: Pre-compute Astro Optimized Images for React View - #171
Conversation
…computation * Replace usage of Astro `<Image>` in React (`ProjectsView.tsx`), which is an anti-pattern that leads to hydration issues and missed build-time optimizations * Compute optimal WebP grid (800w) and list (80w) images on the server side (`index.astro`) using `getImage` and `import.meta.glob` * Pass computed strings down to React as props and consume them with optimal native HTML `<img>` tags (`loading="eager"`, `fetchPriority="high"`, `decoding="async"`) * Create a journal entry for this optimization pattern in `.jules/bolt.md` Co-authored-by: fysp11 <13081700+fysp11@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Preview deployments for fysp11.github.io ⚡️
Commit: Deployment ID: Static site name: |
💡 What: Pre-computes optimized WebP images on the server side (
index.astro) and passes them as string props to the React UI component (ProjectsView.tsx), rather than incorrectly using Astro's<Image>inside a React file. Native<img>tags with optimal loading attributes (eager,high,async) were added.🎯 Why: Astro's built-in
<Image>component is strictly intended for.astrocomponents. Using it within React (.tsx) causes hydration issues and skips build-time optimizations (like resizing and WebP conversion), resulting in unnecessarily large and unoptimized payloads sent to the client.📊 Impact:
fetchPriority="high",loading="eager", anddecoding="async"to the above-the-fold images.🔬 Measurement:
PR created automatically by Jules for task 10370411917164028743 started by @fysp11