Cool! Bit out of my budget, but I can see this solving a pain point. I wonder what happens once the demo'ed app invokes canvas, WebGL or its own extensions?
We've taken different approaches to this in the past. Through serializing all network requests (from js bundles to api requests), you can reassemble an application on the client in the same way that it would typically appear. This allows you to use any browser tech like canvas / WebGL as normal. From a DOM serializing perspective, although less interactive, you can convert canvas elements into static images (.toDataURL()). This has proved to be good enough for most use cases so far, but we're continuing to experiment with new methods!