1. A method comprising: receiving, at a server, a plurality of identifiers for an application running on a user device, each of the plurality of identifiers being associated with at least one of a plurality of components of the application; responsive to receiving the plurality of identifiers, generating at least one component reference table based on the plurality of identifiers, the at least one component reference table including, for each of the identifiers, the at least one component of the application associated with the identifier; receiving an indication that a user selected a user recommendation control in the application running on the user device, the indication including data corresponding to one of the identifiers received for the application; determining that the user recommended a component of the application based on the at least one component reference table and the data corresponding to the one of the identifiers; using the data corresponding to the one of the identifiers to determine a group of components of the application associated with the one of the identifiers; querying the user to select at least one of the group of components applicable to the recommendation; receiving from the user, in response to the query, a selection corresponding to at least one of the group of components; generating at least one social annotation based on the selection received from the user; and; and serving, via a network, the at least one social annotation to a second user device in a format suitable for presentation on the second user device.