An abstract data graph may be constructed at a server. The abstract data graph may include nodes and links between nodes and may represent computer programming instructions for generating a graphical user interface at a client machine. At least some of the links may represent dependency relationships between portions of the graphical user interface. The abstract data graph may be resolved at the client machine to identify data items, which may be retrieved from the server and used to render the graphical user interface.