There are trade offs for using the DOM vs. a custom <canvas> renderer, however I think they’re worth it for the types of applications that can be built this way.
We’ve also put a ton of thought (and opinions) into the interactions in tldraw. Some of this can sound pretty ridiculous, like rotating your cursor when your rotate a selection, while also counter-rotating the cursor’s shadow to preserve light direction. But especially with this sort of app, you really notice those details when they’re not there. As a product for developers, my hope is that the quality and attention to detail become part of the value proposition! Users certainly notice it.