Building Interactive Async UI with React 19 and Ariakit
Forget complex state management for async UI. Use React 19's `useOptimistic` hook for instant feedback with automatic rollback on error.
#1about 1 minute
Challenges of building custom interactive UI components
Three common problems are outlined: building custom UI from scratch, ensuring accessibility without being an expert, and handling async operations smoothly.
#2about 1 minute
Solving UI challenges with a modern tech stack
The solution involves using Tailwind CSS for styling, Ariakit for accessible component primitives, and React 19 features for managing asynchronous operations.
#3about 4 minutes
Analyzing the initial flawed component and its code
A demonstration and code walkthrough reveal a custom dropdown with accessibility issues, complex state management, and out-of-sync pending states.
#4about 7 minutes
Refactoring the UI with Ariakit for accessibility
The component is refactored by replacing standard divs with Ariakit's `Select` primitives, which automatically handle state, keyboard navigation, and ARIA attributes.
#5about 2 minutes
Managing async state with React 19 hooks
The component's asynchronous logic is improved by replacing manual pending states with `useTransition` and `useOptimistic` for smooth, instant UI feedback and automatic rollbacks.
#6about 4 minutes
Simplifying data updates with server functions
The traditional API layer is removed and replaced with React Server Functions, enabling direct, type-safe server calls from the client component.
#7about 2 minutes
Demonstrating the final interactive and accessible component
The final result is a fully interactive, accessible, and user-friendly dropdown component with smooth pending states and optimistic updates, built with minimal boilerplate.
#8about 3 minutes
Summary of benefits from Ariakit and React 19
A recap of how Ariakit provides accessibility and clean code, while React 19 streamlines server communication and simplifies loading states for a better user experience.
Related jobs
Jobs that call for the skills explored in this talk.
Dev Digest 215: Agent Memory, JS2026, Googlebot Analysis & Canvas❤️HTMLInside last week’s Dev Digest 215 .
🗿 Make AI talk like a caveman
🧠 A guide to context engineering for LLMs
🤖 Simon Willison on agentic engineering
🔐 Axios supply chain attack post mortem
🛡️ Designing AI agents to resist prompt injection
🎨 HTML in c...
Dev Digest 190: GitHub A11Y action, >12s Sora 2 videos and 42 CSS units!Inside last week’s Dev Digest 190 .
🙅 Developers don’t trust AI, and that’s a good thing
🤖 Why everyone is talking about AI agents
🔓 Autonomous AI hacking and the future of cyber security
😨 Windows 10 support ends, millions of PC’s fall off a securi...
SciChart
The Fastest JavaScript Charts - Built for React and BeyondFor most developers, browser charting works fine — until it doesn’t. Once you push beyond tens of thousands of points, add live streaming, or need advanced interactions, the story changes: frame drops, frozen dashboards, memory issues.
That’s where S...
From learning to earning
Jobs that call for the skills explored in this talk.