Mark's Dev Blog

フィード

記事のアイキャッチ画像
Presentations: The State of React and the Community in 2025
はてなブックマークアイコン 2
Mark's Dev Blog
I spend a lot of time reading (and participating in) discussions in the React community, across many different sites. Over the last few years I've seen an increasing amount of frustration and concerns from the community, questions about the motivations and intent behind React's development, and a growing disconnect between how the React team wants React to be used, and how the ecosystem is using React in practice.I've put together this talk to explain and clarify what I'm seeing argued about. My goal is to answer questions, provide background context and explanation, highlight places where I'm seeing disconnects, and hopefully point out ways that things can be improved going forward.React Summit 2025I first did this talk at React Summit in June 2025. Here's the slides:The State of React and the Community in 2025 - slidesI'll link the video of that talk as soon as it's available.I also got to participate in a follow-up panel discussion on "The State of React". I'll link the video of tha
10日前
記事のアイキャッチ画像
The State of React and the Community in 2025
はてなブックマークアイコン 3
Mark's Dev Blog
IntroductionToday, the state of React and its ecosystem is complicated and fractured, with a mixture of successes, skepticism, and contention.On the positive side: React is the most widely used UI framework, and its concepts have influenced the rest of the JS ecosystem. The React team recently released React 19 after multiple years of development. This was a huge release, including official stable React Server Components support, the new use hook for handling promises, multiple new form integrations, and the removal of many long-deprecated and obsolete features.However, I've observed and experienced that the React community has had a growing sense of frustrations and disagreements on where React is headed, how it's developed, and the recommended approaches for using React, as well as the interactions between the React team and the community. This in turn overlaps with dozens of different arguments that have ricocheted around the React and general web dev communities in the last few yea
10日前
記事のアイキャッチ画像
Presentations: Maintaining a Library and a Community
Mark's Dev Blog
The main thesis of this talk is that maintainers do a lot more than just write features and fix bugs, and that really most of what we do involves thinking about and interacting with the users of our library. That includes answering support questions, writing docs, thinking about how versioning and backwards compatibility will impact people, and a lot more.Hopefully this proves useful to other maintainers, and peels back the curtain on what it's like to maintain a widely-used library.React Summit US 2024I first did this talk at React Summit US in November 2024:Maintaining a Library and a Community - videoAnd here's the slides:Maintaining a Library and a Community - slidesI also got to participate in a panel discussion on "The Future of React", with members of the React team and the community. This was a pretty good discussion:The Future of React panel - videoNDC Oslo 2025For NDC Oslo, I significantly expanded and updated the content and slides. Part of that is that I had an entire hour
7ヶ月前
記事のアイキャッチ画像
React Advanced 2024: Designing Effective Documentation
Mark's Dev Blog
My remote presentation for React Advanced 2024 was on "Designing Effective Documentation: Lessons Learned Writing the Redux Docs".I've spent a lot of my time working on the Redux docs, and it is in fact how I got my start working on Redux!.Hopefully this proves useful to other folks writing docs for tools and libraries.Designing Effective Documentation - videoAnd here's the slides:Designing Effective Documentation - slides
7ヶ月前
記事のアイキャッチ画像
React Summit 2024: Why Use Redux Today?
Mark's Dev Blog
I had the chance to speak at both React Connection Paris in April and React Summit Amsterdam in June, and at both conferences I gave a talk on "Why Use Redux Today?".Both of those had the same core content, but I tweaked and updated the slides for React Summit.Why Use Redux Today? - videoand the earlier livestream:Why Use Redux Today? - livestreamAnd here's the slides:Why Use Redux Today? - slides
1年前
記事のアイキャッチ画像
React Summit US 2023: What's New in Redux Toolkit 2.0
Mark's Dev Blog
I gave a lightning talk at React Summit US, and did a quick run-through of what's changing in RTK 2.0.I've linked the livestream at the right timestamp for now, and will link the final video when it's live.What's New in Redux Toolkit 2.0 - videoAnd here's the slides:What's New in Redux Toolkit 2.0 - slides(and totally unrelated to my talk, had the chance to lead a Carnival Parade of costumed characters as part of Kathleen McMahon's demonstration of "why you should never include a carousel in your design system!")Kathleen McMahon: Carnival!!! - video
2年前
記事のアイキャッチ画像
React Advanced 2023 - Building Better React DevTools with Replay Time Travel
Mark's Dev Blog
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 Op
2年前
記事のアイキャッチ画像
React Rally 2023 - A (Brief) Guide to React Rendering Behavior
Mark's Dev Blog
My extensive post "A (Mostly) Complete Guide to React Rendering Behavior" is the most popular and widely appreciated post I've written. After the recent updates to cover React 18, it's now around 10,900 words long!I recently had a chance to give a talk based on that post for React Advanced in 2022 and React Rally in 2023.React Rally 2023I'll link the video once it's available.A (Brief) Guide to React Rendering Behavior - slidesA (Brief) Guide to React Rendering Behavior - livestream videoReact Advanced 2022A (Brief) Guide to React Rendering Behavior - videoAnd here's the slides:A (Brief) Guide to React Rendering Behavior - slides
2年前
記事のアイキャッチ画像
Blogged Answers: My Experience Modernizing Packages to ESM
Mark's Dev Blog
Table of ContentsIntroductionRedux Packages BackgroundPackages and ConfigurationsIssue HistoryEarly AttemptsMigrating to VitestInitial Alpha TestingResearching Better ConfigurationSetting Up CI Checks for PackagingInitial CI SetupAre The Types Wrong?Packaging Updates, Round 2Switching Build ToolingUMD Build Artifact ChangesWebpack 4 CompatImmer 10 BetaTypeScript DeclarationsRound 2 ResultsOther Package UpdatesUpdating Immer's PackagingProblems with Next.js and React Server ComponentsVentingFinal ThoughtsWhere Do Things Stand Today?Lessons and TakeawaysFuture StepsFurther InformationIntroductionFor the last 8+ years, the JS ecosystem has been undergoing a slow transition towards using ES Modules ("ESM") as the default approach for publishing and using JS code. Similar to the Python 2->3 transition, this has been incredibly difficult and painful to deal with.As a package maintainer, I want to make sure that my libraries are maximally compatible and usable in the widest array of environme
2年前
記事のアイキャッチ画像
Presentations: Debugging JavaScript
Mark's Dev Blog
In mid-2021 I had the chance to do a talk on "Debugging Software" for a meetup hosted by Mintbean.io. In 2022, I did an updated "Debugging JS" version of the talk for ThisDot Media's "JS Drops" video series.I previously did a post on Debugging Tips, where I listed some quick tips for thinking about debugging, and recapped the stories of several interesting bugs I ran into and solved.I later had a chance to present this talk at React Summit 2023 in Amsterdam.This talk was based on that post, and covers:Concepts and principles for thinking about debugging, as well as some additional tipsSpecific techniques for debugging, including how to use both print logging and GUI debuggers effectively, as well strategies for debugging React, Redux, and JSA quick example of using Replay to investigate bugs using time-travel debuggingThe slides also include some "Scene of the crime"-themed versions of some of those debugging stories (not covered in the video due to time constraints).Debugging JS - sli
2年前
記事のアイキャッチ画像
Presentations: 2022 Podcasts
Mark's Dev Blog
I had the opportunity to talk on a number of different podcasts and interviews over the course of the year. I've gathered them here as a directory.ThisDot / Tracy Lee: How to Contribute to ReduxTracy Lee is a prolific podcaster, and her company ThisDot creates numerous shows related to the JS ecosystem. She had me on as part of a new "How to Contribute..." series, where I talked about ways to contribute to the Redux libraries.https://www.youtube.com/watch?v=rPJmnxDX9lYKevin Ghadyani: Redux vs React ContextKevin and I have done a couple long-form video discussions in the last couple years, and he's split those out into several separate videos.This discussion was actually recorded in mid-2021, but just recently got published. We talked about the actual differences between Context and Redux, and why so many people get confused about the differences.https://www.youtube.com/watch?v=1bIdaWVMFkcPodRocket: Time-Travel Debugging with Replay (with Jason Laster)I previously was a guest on the Pod
3年前
記事のアイキャッチ画像
Blogged Answers: How I Estimate NPM Package Market Share (and how Redux usage compares to other libraries)
Mark's Dev Blog
IntroductionFor the last couple years, I've thrown around the statements that "Redux is used by 45-50% of React apps", and "Redux is by far the most widely used state management tool for React apps".I've had a couple people ask how I'm coming up with those numbers. I'd written a couple prior comments about this - I tried to estimate React "state management market share" in Feb 2021, and talked some about the flaws in NPM stats as a metric in Feb 2022, but figured it was worth putting into a blog post for posterity.I'll go through the sources I use, discuss the many caveats and limitations with those sources, and then look at Redux and other state management libraries as an example.Primary Source: NPM Package Download StatsThe most obvious source, and the one that everyone including myself automatically turns to, is NPM's stats on how many times a package is downloaded.That info is available through several different pages and aggregators.NPM Package Stats SourcesNPMJS.comThe first is N
3年前
記事のアイキャッチ画像
Presentations: Modern Redux with Redux Toolkit
Mark's Dev Blog
I've frequently talked about why we created Redux Toolkit and what APIs it includes as part of my "State of Redux" talks and other similar presentations. I recently had the chance to talk at a couple of online meetups, and put together an updated and consolidated version of that material as a complete "Modern Redux with Redux Toolkit" presentation:Modern Redux with Redux Toolkit - videoModern Redux with Redux Toolkit - slides
3年前
記事のアイキャッチ画像
Reactathon 2022: The Evolution of Redux Async Logic
Mark's Dev Blog
I've spoken at Reactathon in past years, and this year I had the chance to give a pre-recorded talk. I also ended up giving the same talk live as well after filling in as a backup speaker.My talk looked at why we use middleware for side effects in Redux, the major libraries (thunks, sagas, observables), why we've recommended thunks, introduces RTK Query and the "listener" middleware, and gives our current recommendations for what tools to use in different scenarios today.The Evolution of Redux Async Logic - slidesThe video should be online in the next few weeks, but for now you can see me give the talk as part of the Day 3 livestream:The Evolution of Redux Async Logic - livestream video
3年前
記事のアイキャッチ画像
TS Congress 2022: Lesson from Maintaining TS Libraries
Mark's Dev Blog
I had the opportunity to give a talk at the first-ever Typescript Congress virtual conference.My talk went over a variety of things I've learned working on the TypeScript aspects of the Redux libraries over the last few years. I covered things like different ways to include types when publishing, approaches for versioning public types APIs, supporting multiple TS versions, debugging and testing types, and some wacky examples of actual types from our libraries.The recorded talk can be viewed on the TS Congress website:Lessons from Maintaining TS Libraries - videoAnd the slides are here:Lessons from Maintaining TS Libraries - slides
3年前