How programmatic recordings work
Replay currently maintains three runtimes (Firefox (opens in a new tab), Chromium (opens in a new tab), and Node (opens in a new tab)). Firefox supports Mac, Linux, and Windows (Alpha). Node is currently in beta for Mac and Linux. Chromium is currently in beta for Linux.
Replay can also integrate Playwright (opens in a new tab) and Puppeteer (opens in a new tab) by configuring each to use the appropriate binary. See our docs on Recording Playwright and Recording Puppeteer for more details. Replay also has alpha support for recording Cypress (opens in a new tab) tests via @replayio/cypress (opens in a new tab).
Rebasing our runtimes is less a question of merge conflicts and more a question of new non-determinism. This is because the diffs of our runtimes are fairly small (~3k lines of code) and each time we rebase the runtimes have changed quite a bit. We plan on rebasing our runtimes in November and going forward staying in sync with the browser releases.
Staying up-to-date with Playwright and Puppeteer in theory is fairly straightforward. We do not change their APIs and they do not introduce that much new nondeterminism. Going forward, we plan on adding automation so that we can stay up-to-date here as well.