Frontend Weekly Digest #416 (26–31 May 2025)
Web-Development
• The Simplest Way to Deploy Your Own Updatable Portfolio Site
• Reliably Detecting Third-Party Cookie Blocking In 2025
• Gemini 2.5 and the future of AI reasoning for frontend devs
• When To Use Progressive Web Apps and When To Go Native
• How to use Claude to build a web app
• Progressive JSON
- Tools
• Evan You: Announcing Rolldown-Vite
• Exploring the OKLCH ecosystem and its tools
• New in Chrome 137: CSS if() function, WebAssembly JavaScript Promise Integration and more
• ESLint v9.0.0: A retrospective - Effects
• Building Interactive 3D Cards in Webflow with Three.js
• Deconstructing the 35mm Website: A Look at the Process and Technical Details
• Animated Product Grid Preview with GSAP & Clip-Path
Web-development
• CSS Spotlight Effect
• Better CSS Shapes Using shape() — Part 2: More on Arcs
• What We Know (So Far) About CSS Reading Order
• How to use the CSS cursor property
• CSS Minecraft
JavaScript
• Hidden Capabilities of Remix.js That Will Transform Your Approach to Markdown Blogs in 2025
• Wake up, Remix!
• Faster, Smoother, More Engaging: Personalized Content Pagination
• The Beauty of TanStack Router
• OpenJS Foundation Is Now a CNA for 40+ JavaScript Projects Under Its Umbrella
- Theory
• How to Sort Dates Efficiently in JavaScript
• JavaScript’s iterator helpers are fast
• Why are 2025/05/28 and 2025–05–28 different days in JavaScript?
• When Array uses less memory than Uint8Array (in V8) - React
• Build a React AI image generator with Hugging Face Diffusers
• How to build a React + TypeScript app with Vite
• Why React Error Boundaries Aren’t Just Try/Catch for Components
• Composing Server and Client Components: The Modern React’s Superpower
• Why Does RSC Integrate with a Bundler?
• Next.js Rendering Strategies and how they affect core web vitals - Angular
• Announcing Angular v20
• Build a Blog with Angular in Under 30 Minutes Using Analog
Memes