What if you could turn a local useState hook into performant, global state without the dreaded provider hell?
#1about 3 minutes
The challenge of managing local versus global state
Using hooks for local state and libraries like Redux for global state creates two mental models and makes refactoring difficult.
#2about 1 minute
Aligning local and global state management patterns
One solution is to use global state patterns, like `useReducer`, for local component state to create a consistent development experience.
#3about 4 minutes
How hooks enable superior code reusability
Hooks' reliance on call order and co-location makes it simple to extract logic into custom hooks, unlike refactoring traditional reducers.
#4about 2 minutes
Using the React Context API for shared state
The React Context API provides a native way to manage shared state using hooks, as seen in Facebook's own UI.
#5about 2 minutes
Understanding the performance drawbacks of React Context
In large applications, Context can lead to deep provider nesting and performance issues from unnecessary re-renders across the component tree.
#6about 2 minutes
The future of React Context with selectors
A proposed RFC for `useContext` aims to solve performance problems by adding a selector argument to prevent components from re-rendering unnecessarily.
#7about 4 minutes
Designing an ideal hook-based state management API
The evolution of a new state management API explored initial attempts using string keys and custom hook implementations before finding a better solution.
#8about 3 minutes
Introducing the Reusable library and its architecture
The Reusable library uses a `createStore` function to run native hooks in a dummy component, enabling direct subscriptions without Context.
#9about 4 minutes
Live demo of refactoring local state to a shared store
A live demonstration shows how to easily convert a component's local state into a global, shared store using the Reusable library.
#10about 2 minutes
Live demo of using selectors and composing stores
The demo continues by implementing selectors to optimize re-renders and shows how one store can seamlessly use data from another.
#11about 1 minute
Final thoughts on choosing the right development tools
A concluding thought emphasizes choosing tools that fit your team's needs, as today's hottest trend often becomes tomorrow's legacy code.
Related jobs
Jobs that call for the skills explored in this talk.
The HTML Elements That You’re Probably Over-EngineeringAs frameworks have become more and more commonplace in the world of web development, so too has the over-engineering of features made possible by our humble old friend, HTML.
The mental models that come with using state management in React, Vue and o...
Daniel Cranney, Chris Heilmann
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...
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...
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take partStarting with this week's Web Dev Day edition of WeAreDevelopers LIVE Days, we changed the the way we run these online conferences. The main differences are:Shorter talks (half an hour tops)More interaction in Q&AA tips and tricks "Did you know" sect...
From learning to earning
Jobs that call for the skills explored in this talk.