1. A method comprising: (a) a first computing device hosting a collaborative user interface development environment; (b) a second computing device associated with a designer, that connects to the collaborative user interface development environment for composing a user interface using a plurality of user interface assets that encode the designer's intent; and (c) a third computing device rendering an executable user interface, by compiling the user interface assets.