The rendering engine is quite elegant, leveraging the normalisation of the data to simplify the edge cases and allow for almost free incremental renders. I am not sure about the interleaving of model and view, though. You really have to be confident the data model won’t change to do that. Also, I’m curious to see how more advanced interaction patterns are handled.
This is a nice approach that reminds me of the “Out of the Tar Pit” paper.
By sheer coincidence, I heard a presentation about FactUI a week or so back. It takes a similar approach to say “bits of the UI state tree are defined by query results”. It does the heavy lifting directly in the browser.