Hima Tammineedi to present.


I asked myself, would it be possible to make screen recordings on my computer without the results being a large video file?

One approach to this is to make a better compression algorithm to reduce video file sizes but that wasn't interesting to me. That would only be maybe a 2x improvement. Furthermore, I didn't want just more videos. I wanted something better.

What if you could interact with a video? Regular videos only capture the pixels on your screen and then replay them. What if we could capture the content itself that you're recording and re-create it when viewing?

This led me to start looking at browsers and realize that HTML is a generic representation and so there's no reason that I can't just build a pseudo-web browser myself that also uses the same HTML format, but in this case to record HTML that's actually changing over time.

This led to the question: What if we could stream changes to the DOM of a page in real-time in order to store those changes and replay them to create a video effect?

So that's what I created: I call it Capsule.

Press a start button in the Capsule browser extension, do anything they want on a website, and then press the finish button. You'll get a shareable link to a screen recording, that actually replays the underlying DOM changes instead of just pixels. So now when someone views your recording, the original website and its changes are being re-created in your browser.

The benefits are many, but the most interesting is that these recordings are now *interactive*. With a regular video-based screen recording, the only thing you can do is watch it. With a Capsule recording, however, you can actually use your mouse inside the recordings! The recording now actually feels just like you're on the original website instead of it feeling like you're watching through a screen.

In this talk, I will talk about how this technology is possible and some of what goes on in the frontend and backend!

Capsule itself is a super useful tool that I now use in my web dev work in order to share new features I'm adding to a site with teammates or to instantly showcase a localhost website without having to deploy anywhere.

  • Get the latest DevOps jobs, events and curated articles straight to your inbox, once a week

  • Community Partners