Oh! And I could package this as a web extension with a new content type for the markup.
That way existing browsers can be "upgraded" to be able to render these apps, as well as native apps being able to run it directly.
Might be a good excuse to do some #rust?