There's a lot of other products like this and they all have the same fundamental parts. This is one I'm very familiar with because I had a chance to work on it. We're going to see it live, but before we do that I want to walk through five insanely cool features and just point some things out to you here.
So there's a video player here. But it's not just a video like you might see on YouTube, this is the actual DOM of your website. So session replay helps you debug bugs that are happening on your website by showing you the HTML and letting you inspect and basically look over the shoulder of your customers who are having problems.
You've got access to full console logs. So if you were debugging something on your computer, you would open up the inspector and you would see your own console and maybe give yourself some debugging hints. When it's a remote computer you can't do that unless you have something like session replay capturing those DOM messages and showing them back to you here. So we can see that in this sample application, there's a bunch of console logs, some type errors, which we probably need to be debugging, and some like just error messages that cannot read properties of undefined that maybe we added ourselves.
Network request and response. So this is a very cool feature where you're able to see, again, just like in the dev tools, what was happening on the network. So we can see that there was a get request or a bunch of get requests that all returned that's great. And this one was a fetch, and we can see here what were the results. So in this app, this is my Pokemon app, which we'll look at in a little bit, it looks like it's loading all the Pokemon here, 1,200 of them. And so everything's working great. Replays are cool, and finding errors and fixing errors is great, but you might also want to find out interesting replays based on what the user was doing. So there's a cool feature we have to be able to search for replays based on the DOM nodes that were clicked. You can look for DOM nodes based on the labels that they have, the classes, the IDs, any of these, I think, nine selectors. And that's just an easy way to zoom in and say, okay, we've got some replays, we've got some users taking some actions, I want to know like who's opening this modal? Who's clicking save? Who's clicking buy now? And what are the errors or what are the behaviors that people are doing around those features? And finally, the last thing is that session replay, even though it's a UI focused feature, recording that DOM, it also can link backend errors and transactions. So these are things that might happen in your Python server, it can link them to the front end. And so you can see, hey, my database query had a problem and that returned to 500. What did the user see when that 500 showed up? Was it handled properly or was it, did it just kill the page? So these are some of the features that we have for session replay.
And so what I want to talk about next is how it works under the hood. So session replay is not just a video, it's actually a recording of the HTML DOM on your website. And so when people encounter an error, we can have that, use that recording to say, to show you this is what the user was looking at on the website, this is what was clicked on, and here's when the error happened. And if you're familiar at all with keywords like virtual DOM, or like React has been very popular with their use of virtual DOM and a lot of other frameworks, the implementation of this is quite similar. What we do is if we have an HTML page like this that's loading in, right now there's just the main div and h1 and a paragraph. What we can do is serialize this entire page into JSON when the page loads up and when the replay SDK loads up. And so, all this JSON when we first tried to do it, we thought this is going to be really expensive and really bad.
Comments