The <canvas> tag using webgl offers a lot lower access to buffers than you might imagine and is very accessible using JS/DOM. I've gotten surgical AR devices approved from FDA - if it works good enough for life or death situations - it can certainly work for a toy app.
if you want to do something actually requires some compute, then suddenly this doesnt work so great
ex: youre prolly not going to want to edit images in JS