1. A method, comprising: generating, on a server platform, profile data for each of a plurality of users including a first user, the profile data related to contacts used in messages to and from each respective user of the plurality of users; generating, via the server platform, parameters corresponding to the profile data of the first user for ranking the contacts of the first user, wherein the ranking is based on giving different weights to different types of fields in the profile data; transmitting, from the server platform, the parameters to a plurality of client devices of the first user for storage locally on each client device to allow each client device to compute ranks for at least a portion of the contacts of the first user based on a function that uses the parameters, wherein the client devices include a first client device and a second client device, wherein the rank for a contact computed by the first client device is different from the rank computed for the contact by the second client device, and wherein the rank computed by each of the plurality of client devices is further dependent on a geographic location of the device that is computing the rank; in response to receiving a new message to the first user, updating the parameters for contacts relevant to the new message, and transmitting the updated parameters to the plurality of client devices; and synchronizing the profile data among the plurality of client devices, the synchronizing comprising reconciling changes made on different devices using a plurality of ranks for the contacts of the first user, wherein each of the plurality of ranks is computed by a respective one of the plurality of client devices of the first user using the updated parameters.