Much of the user experience happens in the moments between actions and the final UI. Page loads, navigations, filtering, and form submissions involve multiple steps where data and code arrive at different times, and handling these intermediate states is essential to keeping interfaces smooth and predictable. This session demonstrates how Async React makes these in-between states manageable. We'll explore patterns like Suspense, optimistic updates, and streaming, and show how caching, prerendering, and animations can smooth or remove intermediate states.
Suspense boundaries define where your app shows fallback UI. But placing them wrong causes layout shifts, flash-of-loading, or waterfall fetches. This talk builds intuition for where boundaries belong and why getting it wrong makes everything feel slower.
Server Actions let you call server code from JSX like a function. But what happens under the hood? We'll trace a form submission from the client through the framework, watch it serialize, execute, and return — and show the edge cases that trip people up.
useOptimistic sounds simple — update the UI before the server responds. But what about rollbacks, race conditions, and stale closures? We'll build a real-world optimistic flow from scratch, break it in every way possible, and fix each case.
React Server Components stream HTML from the server, but CSS still blocks rendering. This talk shows how to co-locate styles with RSC, avoid FOUC, and keep your CSS budget under control with Tailwind, CSS Modules, and zero-runtime CSS-in-JS.
The React Compiler rewrites your components at build time. But what is it actually doing? We'll decompile the output, compare it to hand-optimized code, find the cases where it's smarter than you, and the cases where it makes things worse.
Page transitions in React used to require third-party libraries and layout tricks. The View Transition API changes everything — native crossfades, shared element animations, and directional slides. We'll build a full navigation experience from scratch.
TypeScript doesn't just catch bugs — it shapes how you think about components. This talk explores advanced patterns: discriminated unions for component props, const assertions for route configs, template literal types for CSS utilities, and satisfies for type-safe defaults.
Every AI coding assistant generates React — but most of it is mediocre. This talk covers prompt patterns that produce production-quality components, when to trust the output, and the component architecture decisions AI consistently gets wrong.
Accessibility isn't a checklist — it's a design constraint that makes components better for everyone. We'll take five common React components (modal, dropdown, tabs, toast, combobox) and make them fully accessible, explaining every ARIA attribute along the way.
Your bundle is 400kb and you don't know why. We'll use source-map-explorer, the React DevTools profiler, and Lighthouse to find the three imports that account for 60% of the weight, replace them, and measure the real-world difference on a 3G connection.
React Native and React for the web keep converging. Shared components, shared routing, shared state. This talk shows how to build a component library that works on both platforms — the patterns that transfer cleanly and the ones that don't.
XSS in React isn't just dangerouslySetInnerHTML. Server Components introduce new attack surfaces — serialized props, streamed HTML, server action inputs. We'll exploit each one live, then fix them with validation, sanitization, and content security policies.
Side projects keep you sharp. This is a rapid-fire tour of weird React experiments — a custom renderer for terminal UIs, a hook that syncs state via sound waves, and a component that renders differently based on the current moon phase.
Kick off ReactConf with drinks, music, and good company. Meet fellow attendees and speakers before the talks begin.
Board games, trivia, and karaoke hosted by the community. All skill levels welcome.