"Building Interactive Async UI with React 19 and Ariakit", Aurora Scharff

fwdays 7 views 27 slides Oct 20, 2025
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

Handling async operations in UI components can be tricky—flickering pending states, inefficient state updates, and unstable user experiences are common issues. Building accessible UI components presents additional challenges, as meeting accessibility requirements often requires extra effort, which...


Slide Content

Building Interactive Async
UI with React 19 and Ariakit
Aurora Scharff
@aurorascharff

Aurora Scharff
Oslo, Norway
Senior Consultant
@ Crayon Consulting
React Certification Lead @
certificates.dev

What inspired this talk?

What inspired this talk?
Problem
Creating custom UI
components from
scratch
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19

https://www.w3.org/WAI/standards-guidelines/wcag/

What inspired this talk?
Problem
Creating custom UI
components from
scratch
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19

What inspired this talk?
Problem
Creating custom UI
components from
scratch
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19

https://react.dev/reference/react/useTransition#perform-non-blocking-updates-with-actions

What inspired this talk?
Creating custom UI
components from
scratch
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution

What inspired this talk?
Creating custom UI
components from
scratch
TailwindCSS
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution

https://tailwindcss.com/blog/tailwindcss-v4

What inspired this talk?
Creating custom UI
components from
scratch
TailwindCSS
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution

What inspired this talk?
Creating custom UI
components from
scratch
TailwindCSS
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution

https://ariakit.org/

What inspired this talk?
Creating custom UI
components from
scratch
TailwindCSS
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution

What inspired this talk?
Creating custom UI
components from
scratch
TailwindCSS
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution

Creating custom UI
components from
scratch
TailwindCSS
Meeting accessibility
requirements without
writing the code
yourself
Ariakit
Handling
asynchronous
operations smoothly
without excess code
React 19
Problem
Solution
What inspired this talk?

DEMO

What did we achieve…
…with Ariakit?
Accessible, interactive components
following WCAG 2standard
Custom styling with data-and aria-
attributes using i.e., TailwindCSS
Declarative and composable component
code without boilerplate
…with React 19?
Streamlined data mutations using Server
Functions
Smooth interactions and simplified
loading states with Actionsand
useTransition()
Instant user feedback and error rollback
with useOptimistic()

What did we achieve…
…with Ariakit?
Accessible, interactive components
following WCAG 2standard
Custom styling with data-and aria-
attributes using i.e., TailwindCSS
Declarative and composable component
code without boilerplate
…with React 19?
Streamlined server communication using
Server Functions
Smooth interactions and simplified
loading states through Actionswith
useTransition()
Instant user feedback and “error
rollback” with useOptimistic()

https://github.com/aurorascharff
/next15-account-selector

THANK YOU
@aurorascharff
aurorascharff.no
@aurorascharff