A method for modifying a graphical user interface, comprising: displaying, by a computing device, a user interface for a host software application, the user interface containing a ribbon-shaped graphical user interface, the ribbon-shaped graphical user interface comprising a first tab (315, 320), the first tab comprising a first logical group of controls (325, 330), the first logical group of controls comprising a first set of one or more selectable controls for selecting one or more functionalities of the host software application, the ribbon-shaped graphical user interface including a gallery that provides a second set of one or more selectable controls, each of the selectable controls in the gallery comprising an image that represents a functionality that is applied if the selectable control is selected; providing an Extensible Markup Language, XML, representation of the ribbon-shaped graphical user interface, the XML representation including a first XML element and a second XML element, the first XML element corresponding to the first tab of the ribbon shaped graphical user interface, the second XML element corresponding to the first logical group of controls; providing an XML schema for providing XML grammar and syntax rules governing modifications to the XML representation; receiving an add-in application at the computing device, the add-in application providing one or more additional functionalities to the host software application; receiving a modification to the XML representation according to the XML schema, the modification adding a first add-in XML element to the XML representation, the first add-in XML element corresponding to an add-in control; after receiving the modification to the XML representation, receiving, from a user, a selection of an object in a document displayed in the user interface; exposing, by the computing device, the add-in control in the gallery in response to receiving the selection of the object, the add-in control comprising an image that represents a given functionality to be applied to the selected object if the add-in control is selected, the given functionality being one of the additional functionalities provided by the add-in application; and after closing a document-based solution that modified the ribbon-shaped graphical user interface, rendering the ribbon-shaped graphical user interface as the ribbon-shaped graphical user interface appeared prior to receiving the modification to the XML representation. displaying, by a computing device, a user interface for a host software application, the user interface containing a ribbon-shaped graphical user interface, the ribbon-shaped graphical user interface comprising a first tab (315, 320), the first tab comprising a first logical group of controls (325, 330), the first logical group of controls comprising a first set of one or more selectable controls for selecting one or more functionalities of the host software application, the ribbon-shaped graphical user interface including a gallery that provides a second set of one or more selectable controls, each of the selectable controls in the gallery comprising an image that represents a functionality that is applied if the selectable control is selected; providing an Extensible Markup Language, XML, representation of the ribbon-shaped graphical user interface, the XML representation including a first XML element and a second XML element, the first XML element corresponding to the first tab of the ribbon shaped graphical user interface, the second XML element corresponding to the first logical group of controls; providing an XML schema for providing XML grammar and syntax rules governing modifications to the XML representation; receiving an add-in application at the computing device, the add-in application providing one or more additional functionalities to the host software application; receiving a modification to the XML representation according to the XML schema, the modification adding a first add-in XML element to the XML representation, the first add-in XML element corresponding to an add-in control; after receiving the modification to the XML representation, receiving, from a user, a selection of an object in a document displayed in the user interface; exposing, by the computing device, the add-in control in the gallery in response to receiving the selection of the object, the add-in control comprising an image that represents a given functionality to be applied to the selected object if the add-in control is selected, the given functionality being one of the additional functionalities provided by the add-in application; and after closing a document-based solution that modified the ribbon-shaped graphical user interface, rendering the ribbon-shaped graphical user interface as the ribbon-shaped graphical user interface appeared prior to receiving the modification to the XML representation.