The Shifting Line Between CSS States and JavaScript Events
CSS is listening to us. No, not like that. Rather, CSS is accumulating more and more pseudo-classes to help us respond to JavaScript events so that we don’t have to…
CSS is listening to us. No, not like that. Rather, CSS is accumulating more and more pseudo-classes to help us respond to JavaScript events so that we don’t have to…
We’ve fallen into conversational tunnel vision, defaulting every AI capability into a chat-based interface simply because LLMs are trained on dialogue data. But great UX is about matching modality to…
Next.js Route Handlers work well when your API is small, internal, and closely tied to the UI. They make it easy to ship quickly inside a single framework, which is…
December 11, 2025 by The React Team Updated January 26, 2026. Security researchers have found and disclosed two additional vulnerabilities in React Server Components while attempting to exploit the patches…
Introduction One of the most common questions around animation performance is whether JS-based animations are slower than CSS-based ones. Should we always strive to use CSS transitions, or is it…
Next.js 16.3 Preview is ready for public testing! We’ve published a new Next.js release to npm using the @preview tag, so you can try out 16.3 today. We expect to…
Today we are excited to release React Native 0.86! This release includes comprehensive edge-to-edge support on Android 15+ and improvements in React Native DevTools. Following 0.83, this is the second…
Every single time a post about atproto hits Hacker News, somebody asks in the comments: “But where are all the Bluesky instances?”. The problem is, there are no instances in…
A few weeks ago I added semantic search to kentcdodds.com. It lets you search with natural-language questions like “How did Kent get his first job?” or “What’s the best way…
I’m Safdar Ali. For six months I treated every Next.js page like SSR because “server” sounded safest. Marketing pages were slower than they needed to be; dashboard pages were over-cached….