Reactime v22.0

Reactime: Real-time Debugging, Timeless Results

kelvinmirhan
5 min readOct 25, 2023

Co-authored by: Andrew Byun, Jimmy Phy, Christopher Stamper

Why Reactime?

In the evolving realm of web development, React has solidified its presence as a dominant force. But for developers dealing with React applications, debugging can often feel like a bit of a puzzle, especially when it comes to keeping tabs on things like state changes over time. This is where Reactime steps in, like a trusty sidekick, to make your React app development journey smoother. However, Reactime isn’t your run-of-the-mill tool; it’s like a time machine, allowing you to move forwards and backwards in time through your code. As we journey through this article, we’ll show you just how valuable this open-source tool is for debugging.

Reactime At Its Core

As we delve deeper into Reactime’s capabilities, we discover a suite of features meticulously designed to streamline the debugging process for React applications.

Among these, the time-traveling feature emerges as the most important tool, enabling developers to capture snapshots of state changes within React components as users interact with the application. This functionality empowers developers to handpick specific snapshots for examination, effortlessly moving both forward and backward in time to explore captured states. Reactime also allows developers to compare the performance between multiple saved snapshots, enabling them to identify bottlenecks and areas for optimization. Such control proves immensely valuable, simplifying the task of isolating and troubleshooting bugs, and offering a clear visualization on how code alterations influence the application’s state.

In addition to its time-traveling functionality, Reactime offers a broad range of capabilities to enhance a React developer’s toolkit. The developer can measure critical web metrics, which provide valuable insights into the application’s performance. It also provides an intricate visualization of the React Fiber tree, rendering an application’s component hierarchy. This allows developers to gain valuable insight on how React works under the hood. Together, these capabilities make Reactime an indispensable tool, revolutionizing how the developer approaches debugging and understanding their React applications.

Updates & Features of Reactime v22.0

As we shift our focus to Reactime v22.0, we’ll thoroughly explore the product’s latest enhancements and added features, offering a comprehensive and insightful look into how these additions can further elevate the development experience for React users.

Transition of State Management to Redux Toolkit

When tasked with developing an application, the careful selection of software frameworks plays a pivotal role in determining the efficiency, maintainability, and scalability of applications. The application’s previous version relied on React paired with the Immer library. While it served its purpose, we recognized the significant potential for improvement and possibility to reduce our product’s dependencies.

Transitioning to Redux Toolkit was a strategic decision, underpinned by its simplified API, scalable structure, and active community support. Beyond these advantages, Redux Toolkit’s enhanced state management capabilities — featuring automatic action type generation, integration of under-the-hood immutable state updates using the Immer library, and built-in middleware — ensures the application is not only equipped for today’s demands but is also future-ready.

Improved User Connection Stability

User feedback revealed a persistent issue: frequent disconnections that rendered the application unusable due to connectivity issues between open ports and the Reactime extension, significantly hindering the overall user experience. The Reactime v22.0 team efficiently resolved this recurring issue through the introduction of sophisticated logic and error handling to ensure a steady and reliable connection with the mounted application, allowing it to operate as designed.

However, should any disconnection occur, Reactime v22.0 has also implemented an added layer of protection. The new reconnection feature acts as a safety net, promptly alerting users with a pop-up notification in case the application somehow gets disconnected. From this point, developers have the option to download their current snapshots or proceed with their session through the reconnection feature.

Increased Testing Coverage

Ensuring robust test coverage is a fundamental and pivotal element in upholding the functionality and code quality of any software application. Reactime has recently undergone a significant transformation with the conversion to Redux Toolkit, leading to a comprehensive enhancement and refactoring of its test coverage. This intensive effort has resulted in a remarkable 30% increase in test coverage across the entire Reactime codebase, elevating the application’s overall coverage to an impressive 83%.

Added Web Metrics

Reactime v22.0’s release also introduced two powerful web metrics: Cumulative Layout Shift (CLS) and Interaction to New Paint (INP). CLS provides insights into visual stability, helping developers address unexpected layout shifts, while INP gauges a page’s responsiveness after user interactions for a seamless experience. These metrics empower developers to create efficient, user-centric web applications, keeping users at the cutting edge of web performance analytics.

Increased TypeScript Coverage

Reactime v22.0 represents a significant leap forward in our commitment to code quality and the adoption of TypeScript. Through meticulous testing and rigorous optimization, we’ve successfully elevated the TypeScript coverage to an impressive 85%. This extensive coverage empowers our developers to work confidently and efficiently, leveraging TypeScript’s static typing system to prevent potential errors, ensure better collaboration, and maintain high standards of code consistency.

Concluding Thoughts

At its heart, Reactime stands as a testament to the unwavering dedication to progress and user-centric innovation. With a focus on addressing pivotal challenges and integrating meaningful upgrades, this iteration cements its reputation as an indispensable ally for debugging React endeavors.

As an open-source tool, Reactime is crafted for the modern developer. For those looking to amplify their React debugging process, we welcome you to discover more on Reactime’s GitHub repository and integrate Reactime into their workflow.

Cheers!

-Reactime Team

Meet the Reactime v22.0 Team!

Andrew Byun | Github | LinkedIn

Christopher Stamper | Github | LinkedIn

Jimmy Phy | Github | LinkedIn

Kelvin Mirhan | Github | LinkedIn

Download Reactime 22.0 on the Chrome Web Store!

Visit our website and star us on GitHub!

--

--