Mark Erikson's Avatar

Mark Erikson

@acemarke.dev

Redux maintainer, building time-travel devtools at Replay.io. I blog about React, Redux, and TS at https://blog.isquaredsoftware.com . Answering questions anywhere there's a textbox on the internet, and otherwise out on the golf course!

7,528
Followers
473
Following
1,160
Posts
27.08.2023
Joined
Posts Following

Latest posts by Mark Erikson @acemarke.dev

"Steal second base, Amelia Bedelia! Run home!" :)

03.03.2026 22:24 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Great discussions again this month! We looked at the release of Vinext and what that means, and has a pretty long sidebar on how AI tooling is affecting the industry

03.03.2026 16:00 πŸ‘ 5 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

so i think a basic answer is it’s a built-in way to do async state machines with side effects. if this doesn’t ring a bell, i’m not sure what else to say! i’ve definitely run into these cases in the past. the pages has demo sandboxes (scroll down!) which give an idea.

19.02.2026 12:38 πŸ‘ 7 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

honestly i think a significant part of this is because it was actually kind of impossible to figure out how to use them because the official documentation was barely there.

very thankful @ricky.fm is on a streak rewriting it, e.g. with react.dev/reference/re...

19.02.2026 00:17 πŸ‘ 44 πŸ” 5 πŸ’¬ 2 πŸ“Œ 1

btw, worth noting:

this _ought_ to give real perf info _from production apps_!

React DevTools is normally dev-only. Helpful for relative ("Comp A is 3x as slow as B"), bad for absolute.

Replay can inspect _prod React_ (with sourcemaps). So I can get timings for recordings of prod apps! :)

20.02.2026 22:51 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

A week-ish later - it's working! Rebuilt my React+Redux dispatch+render perf POC on top of Replay's current infra. Currently extracting dispatch+render timings and selector calls . Just raw data atm, but now I can build meaningful visualizations / perf analysis with this!

time travel's awesome!

20.02.2026 22:44 πŸ‘ 4 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Welcome | Schema Benchmarks Welcome to Schema Benchmarks!

Check out our welcome post over at schemabenchmarks.dev/blog/welcome!

We measure different aspects of runtime performance for schemas:
⏱️ Initialisation
βœ… Validation
πŸ”„ Parsing

We also translate πŸ“¦ bundle size directly into 🌩️download speed 😎

19.02.2026 15:35 πŸ‘ 5 πŸ” 1 πŸ’¬ 2 πŸ“Œ 1
Post image

Incredibly hyped to announce Schema Benchmarks, a project I've been steadily working on in collaboration with @fabianhiller.com!

It aims to provide a central and transparent resource for many of the metrics that matter for schemas, including bundle size and runtime performance πŸ˜„

19.02.2026 15:35 πŸ‘ 15 πŸ” 4 πŸ’¬ 2 πŸ“Œ 1

⚠️ State of React survey results are live! I just went through the results, and there’s *a ton* of interesting stuff in here.

Sharing my highlights in this thread. 🧡

18.02.2026 22:13 πŸ‘ 60 πŸ” 8 πŸ’¬ 3 πŸ“Œ 2

see, this is the part I really want to talk about how we did this :)

13.02.2026 06:25 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

then once we have the tens of thousands of timestamps and location details, we can correlate that into an "async dependency graph", like:

- useEffect callback
- component rendered
- render pass started
- setState called
- promise resolved
- network request
- from an earlier useEffect

13.02.2026 06:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

fun fact: since we need to track _every_ hit to ~40 key lines of code in React, we actually:

- Find key snippets in React itself (`renderWithHooks`, etc)
- AST-insert our own callbacks
- Then apply that to the _minified bundle_
- and re-run the entire recording with the instrumented bundle!

13.02.2026 06:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Replay - Browser DevTools from the future. Investigate bugs and flaky tests with perfect reproducibility.

The overall recording/analysis process does require very expensive processing in the cloud - we're replaying the entire browser and its OS syscalls!

docs.replay.io/basics/time-...

The React analysis layer is an extra step we built on top of the time-travel processing core - modest extra cost.

13.02.2026 06:22 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

πŸ–οΈβ›ˆοΈ!

13.02.2026 02:32 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Formatted console log messages showing output from a proof of concept script that extracts Redux dispatch timings from a Replay recording, as a first step towards performance timing analysis data

Formatted console log messages showing output from a proof of concept script that extracts Redux dispatch timings from a Replay recording, as a first step towards performance timing analysis data

update: already have the first POC of the React+Redux dispatch+render perf timing working! lot more data wrangling to do, but just pulling out these values proves the pipeline works!

on top of that, the new Replay MCP is actually helping me investigate behavior! genuinely incredible results!

12.02.2026 22:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Yeah, that's a great series! and honestly probably a lot deeper and more informed on React's internals than _I_ am :)

12.02.2026 05:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

We've had multiple people ask the Redux team for better ways to measure perf from Redux dispatches, and there still isn't a good way to get a full picture of where the time was spent other than tracing call graphs and flame charts.

I wanted to build that with Replay, and now I think I can!

11.02.2026 23:49 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 1
A screenshot of a JS object expanded in Chrome DevTools. It contains timing data for a Redux dispatch, React render, and Redux selector calls, extracted from a Replay time-travel recording in 2023 as part of a prototype research effort.

A screenshot of a JS object expanded in Chrome DevTools. It contains timing data for a Redux dispatch, React render, and Redux selector calls, extracted from a Replay time-travel recording in 2023 as part of a prototype research effort.

So I'm going to pick that up tomorrow and see if I can reimplement the perf timing and processing logic to extract the same data.

Should then be able to expose that via the new Replay MCP, too!

Here's my old prototype PR:

github.com/replayio/dev...

and example dispatch + selector perf data

11.02.2026 23:49 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Related to this:

In 2023 I put together a POC "React + Redux perf analysis" tool in Replay DevTools. Could extract render + dispatch timings, selector calls + timings. Worked! but slow and expensive.

Today I realized our analysis layer does 80% of that, and I could build the rest, efficiently!

11.02.2026 23:49 πŸ‘ 7 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

I was actually thinking more about the React instrumentation and analysis layer itself :) ie the part that we built and that I'm more familiar with.

but yeah, looks inside React could be interesting too!

11.02.2026 22:00 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

mostly me musing into the void :) but if folks feel like this is something you'd be interested in me writing / talking about, say so and I could try to make time to come up with something! :)

11.02.2026 20:31 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

A blog post at least I could put up, and it'd be there if anyone wants to read it. Conf talks, though... would have to come up with the right concept and actually get accepted.

I did do one a couple years ago on our React DevTools + time travel integration. But beyond that, not sure it'd work out.

11.02.2026 20:31 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

My first year at Replay was modernizing our own DevTools FE codebase. Since then, I've spent all my time building out our sophisticated React analysis backend and digging into React's internals.

I'd love to do conf talks and blog posts about this, but I feel like it's so niche there's no audience.

11.02.2026 20:31 πŸ‘ 7 πŸ” 1 πŸ’¬ 4 πŸ“Œ 1

We technically have a fork of Node that's Replay-enabled... but it's an ancient Node 16 build that we never got past alpha.

It _works_, and @andarist.bsky.social has used it a lot to debug TSC. But obviously not anything you could use to record a modern server process.

10.02.2026 04:51 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

so, no special domain knowledge at this point - current intent is to give a coding agent in _your_ codebase access to detailed knowledge about what actually did happen in an app recording at runtime.

10.02.2026 03:26 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The MCP currently provides tools that use Replay's tech to answer questions about the recording at a point in time (React comp tree, DOM tree, etc), as well as sources. Working on expanding it.

Internally we've built the analysis to help solve things like "why was this useEffect stale?"

10.02.2026 03:26 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I think @filiphric.com is working on putting together some demos of the MCP - maybe he can provide some numbers / examples of token usage.

10.02.2026 03:24 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Don't have any metrics on that atm. honestly _I_ haven't had a chance to play with it yet :) we just put the MCP itself together in the last week. But, we've used the underlying analysis layer in Replay Builder for the last year+, and seen that help the AI fix bugs in apps it's building.

10.02.2026 03:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I personally have spent months building out our React analysis layers to deeply understand React's internals. This allows us to know the React component tree at any point in time in a recording.

Now it's possible to inspect the component or DOM trees, JS execution, and more, _automatically_!

10.02.2026 00:01 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I'm _very_ excited about this!

Time-travel debugging is already magic. But it does still take a lot of work to do the debugging yourself.

We've built a lot of _very_ sophisticated analysis for React and async events... and now we can expose that to _your_ preferred tool to help solve bugs!

10.02.2026 00:01 πŸ‘ 10 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0