reflow

2021-09-29

reflow.io is in public beta

Reflow opens to the public: record a browser flow once, replay it anywhere, and let the tool repair its own steps when your product changes.

Reflow is in public beta today at reflow.io.

Reflow is built around record/replay test generation. You open your web product in the dashboard, interact with it as a user would, and each interaction becomes a test step. Once a flow exists, anyone on your team can run it — from the dashboard, or from a CLI in CI.

The bet

Most end-to-end tests break for a boring reason: the product changed and the test didn’t. The test was written against selectors and timings that were true on the day it was recorded, and every product change after that is a chance for drift.

Recording through a real browser session lets reflow capture far more than a selector per step: screenshots, DOM hierarchy, box-model geometry, and CSS metadata for every element you touch. That context is what makes self-repair possible. When a step breaks, reflow can almost always work out what the step meant — which element played this role before — and heal the step rather than fail the run. When healing is not enough, a developer-tools-powered workflow lets anyone on the team debug and update the flow quickly.

The goal is for the cost of a test to be paid once, at recording time — not again on every product change.

What it does today

  • Local and cloud execution. npm install -g reflowio runs the same flows on your machine as in the cloud, against a shared test configuration. One recorded flow can target a locally running site or a deployed one, parameterized by URL.
  • No code required. Anyone in the organisation can record and maintain flows, not only the people who write the application.
  • Cross-browser replay. Record once, execute against Chromium, Firefox and WebKit.
  • Visual regression. Screenshot comparison is built into every step, so a flow asserts how the product looks as well as how it behaves.

Current limitations

  • Visual regression is pixel comparison only; there is no smart DOM diffing yet.
  • File upload and drag-and-drop interactions cannot be recorded yet.

If you try it and something breaks, that feedback is the most valuable thing you can send us.