Proudly backed by Andreessen Horowitz. Read More

Record, Share, and Debug your application with DevTools.

Tina

Now

Type a comment...

Helen

Now

Absolutely!

Hoverboard | 0px x 0px
- | 0px x 0px

Colors

color | 0px x 0px
color | 0px x 0px
color | 0px x 0px
Colors | 0px x 0px
PurchaseForm | 0px x 0px
PurchaseButton | 0px x 0px
- | 0px x 0px
App | 0px x 0px
handle-submit.ts
1
export function handleSubmit(event) {
2
  event.preventDefault()
3
4
  const form = event.currentTarget
5
  const data = new FormData(form)
6
  const formData = Object.fromEntries(data.entries())
7
  const body = JSON.stringify(formData)
8
  const response = await fetch(form.action, {
9
    method: 'POST',
10
    headers: { 'Content-Type': 'application/json' },
11
    body: body,
12
  })
13
14

Click to add a print statement

1 hit
  if (!response.ok) {

"response", response

Helen

Now

Type a comment...

Tina

Now

Woohoo, thanks for fixing that so quickly! 🙌🏼

0/1
15
    const errorMessage = await response.text()
16
    throw new Error(errorMessage)
17
  }
18
}
Search for component...
  • App
    • Hoverboard
    • PurchaseForm
      • PurchaseButton
0:00 / 0:10

Async Collaboration

Record and share replays with your team.

Replay.io gives your team the ability to time travel. When you share a replay with your team, they can inspect the replay as if they were sitting next to you when you recorded it. This is because when they’re viewing the replay, we’re replaying a browser in our backend that thinks it’s interacting with you, your computer, and the internet.

Replay for teams

Time Travel Debugging

Debug replays with developer tools.

Replay.io lets you travel back in time and debug the application as it initially ran with familiar developer tools. You can inspect a React component at any point in time or add a print statement and see the logs in the Console. Anything is possible when you can replay!

Developer Tools

Time travel debugging lets you replay the browser as it ran before, so that you can start debugging immediately and get into the flow state quickly. How Replay works.

Inspect a Network request and view its headers, request and response bodies.Add a print statement and view the logs in the Console.

Paused Timeline

You can interact with windows now. Try changing the log marker style.

1
2
3
export function HoverBoard() {
4
  const [pos, setPos] = useState({left: 0, right: 0})
5

Click to add a print statement

1 hit
  const [angle, setAngle] = useState(0)

"rotation", angle

0/5
6
}
7
8
9
10
11
12
Search for logs...

Start 360, {"left":110,"top":25}

Paused Timeline

You can interact with windows now. Try time traveling to each log.

Search for logs...

rotate, 0
rotate, 45
rotate, 90
rotate, 120
rotate, 160
rotate, 360
svg | 0px x 0px
div | 0px x 0px

Colors

color | 0px x 0px
color | 0px x 0px
color | 0px x 0px
div | 0px x 0px
form | 0px x 0px
button | 0px x 0px
main | 0px x 0px
body | 0px x 0px

Paused Timeline

You can interact with windows now. Try inspecting any component.

Search for component...
  • App
    • Hoverboard
    • PurchaseForm
      • Colors
        • Colorkey="red"
        • Colorkey="green"
        • Colorkey="blue"
Hoverboard | 0px x 0px
- | 0px x 0px

Colors

color | 0px x 0px
color | 0px x 0px
color | 0px x 0px
Colors | 0px x 0px
PurchaseForm | 0px x 0px
PurchaseButton | 0px x 0px
- | 0px x 0px
App | 0px x 0px

Paused Timeline

You can interact with windows now. Try inspecting any element.

  • <body>
    • <main>
      • <div class="hoverboard-container">
        • <svg class="hoverboard" />
        </div>
      • <form class="purchase-form">
        • <input type="radio" />
        • <input type="radio" />
        • <input type="radio" />
        </form>
      </main>
    </body>
StylesLayoutComputed
    svg | 0px x 0px
    div | 0px x 0px

    Colors

    color | 0px x 0px
    color | 0px x 0px
    color | 0px x 0px
    div | 0px x 0px
    form | 0px x 0px
    button | 0px x 0px
    main | 0px x 0px
    body | 0px x 0px

    Paused Timeline

    You can interact with windows now. Try inspecting any request.

    Search for requests
    svg | 0px x 0px
    div | 0px x 0px

    Colors

    color | 0px x 0px
    color | 0px x 0px
    color | 0px x 0px
    div | 0px x 0px
    form | 0px x 0px
    button | 0px x 0px
    main | 0px x 0px
    body | 0px x 0px

    Paused Timeline

    You can interact with windows now. Try navigating the callstack.

    Call Stack
    Board
    React
    Scopes
    <Board>
    • angle: "23deg"
    • board: {"pos":{"left":12,"top":23},"angle":23}
    1
    2
    3
    export function calculateBoardAngle(board) {
    4
      const { angle } = board;
    5
      return `${angle}deg`
    6
    }
    7
    8
    9
    export function Board({ board }) {
    10
      const angle = calcuateBoardAngle(board)
    11
      return <Svg type=”board” angle={angle} />
    12
    }
    13
    14

    Async Collaboration

    As easy to record as a video. Sharing replays with your team lets you avoid needless back-and-forths and collaborate in new ways.

    Bug Reports

    Add replays to bug reports so that anyone on the team can debug the issue with a single click.

    “Add to cart” fails when user submits.

    Error

    Hoverboard flickers when flipping.

    002

    Hoverboard should change color mid flip.

    003

    Color picker doesn't affect the hoverboard

    Error

    Text is not selectable

    004

    End-to-End Tests Beta

    Record your tests in CI and debug them after the fact. You’ll love how easy it is to see whether you broke the test or if it was simply flaky.

    Pull requests

    Include replays of the problem and the fix in the PR so that reviewers can see what was wrong and how it was fixed.

    Hoverboard flickers when flipping.

    Recorded by Daniel Miller
    floating hoverboard

    Hoverboard flips smoothly.

    Recorded by Elaine Baylor
    floating hoverboard

    Feedback

    Share replays in Slack when you want to get others feedback.
In context comments make it easy to discuss function calls and ui elements.

    “It's a well known fact that engineers want high quality bug reports, with extensive details...”

    “It's a well known fact that engineers want high quality bug reports, with extensive details...”

    “Replay.io is galaxy brain tooling. Real gamechanger.”

    “I first saw Replay at ReactConf in 2019 and came away thinking "this is way cooler than anything I saw...”

    Guillermo Rauch

    CEO, Vercel Vercel

    Guillermo Rauch

    CEO, Vercel logo Vercel

    Dan Abramov

    Mantainer, React logo React

    Kevin Ghadyani

    Engineer, JavaScript logo JavaScript

    Trusted by top teams

    Circle Ci logoGitbook logoCode Sandbox logoRepl.it logoExcalidraw logoSolid JS logoXState logoGlide logo

    Universal & Secure

    We’ve spent the past 7 years researching how to record and deterministically replay runtimes securely, performantly, and reliably. The result is a recorder that is enterprise ready and stress tested on the most ambitious applications.

    runtime logo

    Firefox

    Today
    runtime logo

    Chrome

    Beta
    runtime logo

    Safari

    Beta