1. A method of propagating software over a social network through an instant message client from a sending user to a receiving user, comprising: initiating an instant messaging session between the sending user and the receiving user; determining, with a first processor at a first client of the sending user and a second processor at a second client of the receiving user, if a first operating environment of said first client is compatible with a second operating environment of said second client; in response to a determination that said first operating environment is compatible with said second operating environment, comparing at least a first feature on a first manifest of features stored on a first memory of said first client with a second manifest of features stored on a second memory of said second client; in response to a determination that said at least a first feature on said first instant message client is different from or not available on said second manifest of features, determining a first reputation score of an author of said at least a first feature, said first reputation score being based upon first predetermined factors; and approving propagation of said at least a first feature to said at least a second client when said first reputation score is greater than or equal to a first predetermined value.