React Advanced 2023 - Building Better React DevTools with Replay Time Travel
This is a post in the Presentations series.
I work at Replay.io, and I've spent all of this year building some incredibly advanced React debugging features that make use of our time-traveling backend API. The biggest one is our React DevTools integration. Early in 2023, I wrote a post for the Replay.io blog on How We Rebuilt React DevTools with Replay Routines, which recapped the initial working version. I've spent much of this year improving on that and building other related features.
At React Advanced, I got to share details on how the React DevTools work internally, and dive into how we extract React DevTools component tree data from recorded React apps using a combination of custom Chrome modifications and backend post-processing "routines" that leverage our time-travel API. Along the way, I showed off some crazy tricks like serializing JS functions as strings, sourcemapping original component names from production apps, and generating sourcemaps for React itself!
I also got to participate in a group panel discussion about Open Source, including questions about how we got involved and what it's like to "compete" with other OSS projects.
I've linked the livestream at the right timestamp for now, and will link the final video when it's live.
Building Better React DevTools with Replay Time Travel - video 🔗︎
And here's the slides:
Building Better React DevTools with Replay Time Travel - slides 🔗︎
and the OSS Panel video:
React Advanced Panel: Open Source - video 🔗︎
This is a post in the Presentations series. Other posts in this series:
- Nov 21, 2024 - React Summit US 2024: Maintaining a Library and a Community
- Nov 21, 2024 - React Advanced 2024: Designing Effective Documentation
- Jul 09, 2024 - React Summit 2024: Why Use Redux Today?
- Nov 13, 2023 - React Summit US 2023: What's New in Redux Toolkit 2.0
- Oct 24, 2023 - React Advanced 2023 - Building Better React DevTools with Replay Time Travel
- Aug 16, 2023 - React Rally 2023 - A (Brief) Guide to React Rendering Behavior
- Jun 01, 2023 - Presentations: Debugging JavaScript
- Dec 11, 2022 - Presentations: 2022 Podcasts
- Jun 27, 2022 - Presentations: Modern Redux with Redux Toolkit
- May 04, 2022 - Reactathon 2022: The Evolution of Redux Async Logic
- May 04, 2022 - TS Congress 2022: Lesson from Maintaining TS Libraries
- May 29, 2021 - Presentations: Learn Modern Redux Livestream
- May 29, 2021 - Presentations: The State of Redux, May 2021
- May 29, 2021 - Presentations: Podcast Appearances in 2021
- May 25, 2021 - Presentations: Using Git Effectively
- Dec 20, 2020 - Presentations: Intro to React, Redux, and TypeScript (2020)
- Dec 03, 2020 - Presentations: Podcast Appearances in 2020
- Oct 08, 2020 - Global React Meetup: The State of Redux 2020
- Oct 19, 2019 - Git Under the Hood: Internals, Techniques, and Rewriting History
- Sep 24, 2019 - React Boston 2019: Hooks, HOCs, and Tradeoffs
- Jun 11, 2019 - ReactNext 2019: A Deep Dive into React-Redux
- May 22, 2019 - Presentation: JavaScript for Java Devs
- Mar 31, 2019 - Reactathon 2019 Keynote: The State of Redux
- Oct 01, 2018 - React Boston 2018 Presentation: The State of Redux
- Jun 30, 2018 - Redux Fundamentals Workshop Slides
- Mar 20, 2018 - Reactathon Presentation: Redux Fundamentals
- Mar 07, 2018 - Presentation: Intro to React and Redux (March 2018)
- Sep 24, 2017 - React Boston 2017 Presentation: You Might Need Redux (And Its Ecosystem)
- Feb 24, 2017 - Presentation Sources Published
- Feb 17, 2017 - Presentation: Intro to React and Redux
- Oct 07, 2016 - Presentation: Modern Web Dev Overview