Browse all posts

React 18 in Production: Concurrent Rendering Delivers on its Promise

React 18 launched as a stable release in March, bringing the long-anticipated concurrent rendering engine to production environments. After spending several weeks experiencing it across multiple projects, the performance improvements and developer experience enhancements are visible. What was theoretical in the alpha and beta releases has now proven its worth in real-world applications. Concurrent Rendering: From Theory to Practice In my previous coverage of React 18’s alpha release, I explored the shift from “Concurrent Mode” to “Concurrent React” and the theoretical underpinnings of what makes concurrency special. Now that we’re using it in real applications, let’s see how these concepts translate to practical benefits. ...

May 19, 2022 · 7 min · 1400 words

Towards Better Date Handling in JavaScript: An Exploration to the Temporal API Proposal

JavaScript has come a long way in terms of language features, but one area that has notoriously lagged behind is date and time handling. The ECMAScript Date object has been a source of confusion and frustration due to its inconsistent behaviors, mutability, tricky timezone handling, and limitations. This leaves many developers relying on third-party libraries to perform even fundamental date calculations. Fortunately, we have champions who are well-versed of these challenges, leading to the Temporal API proposal. Having reached Stage 3 in the ECMAScript standardization process, Temporal offers a modern, robust, and ergonomic alternative for working with dates, times, time zones, and durations. ...

February 26, 2022 · 4 min · 806 words

Observability Hygiene: When React Components Accidentally Expose PII to Sentry

Last month, I was working on a client’s React application—a fairly typical dashboard for managing customer information in a marketing services product—when we discovered something alarming. Personal customer data was silently making its way into our Sentry error logs. This discovery kicked off an urgent investigation that revealed some non-obvious ways React applications can leak sensitive data to monitoring tools. Sharing this experience because the it could happen to any team, yet serious enough that it deserves attention. ...

November 5, 2021 · 7 min · 1430 words

Go and Rust bring unprecedented speed to JavaScript bundling and transpilation

The Status Quo and Its Discontents Before diving into these new tools, let’s consider where we are. For years, Webpack has dominated the bundling landscape, with tools like Babel handling transpilation. These tools, written in JavaScript, have served us well, but as projects grow larger and demands for features increase, their performance limitations have become increasingly apparent. A typical modern JavaScript project involves multiple processing steps, each adding to build time. First comes transpiling ES6+ syntax for browser compatibility, followed by converting TypeScript or Flow to JavaScript. Then there’s the transformation of JSX into React function calls, bundling of hundreds or thousands of modules, minifying the resulting code, and finally generating source maps. For large projects, this full process can take minutes—a real drag on development velocity. ...

September 29, 2021 · 6 min · 1091 words

Gearing Up for React 18: Concurrent React

React 18 is on the horizon, and it’s bringing some of the most significant changes to the library since hooks were introduced. As the alpha version has hit GitHub and the React team has shared their plans, there’s a lot to unpack and prepare for. Having spent the last few weeks digging through discussions and experimenting with the alpha, I’m excited to share what these changes mean for our codebases. ...

August 14, 2021 · 8 min · 1502 words