A method of hosting electronic messages, comprising: at a server system comprising a set of conversation servers with a single or multiple conversation servers and having one or more processors of the single or multiple conversation servers and memory storing programs for execution by the one or more processors of the single or multiple conversation servers, each one hosting (502, 562, 572, 1102) a plurality of conversations, each having participants of an identified set of participants (110-A, 110-B,..., 110-N, 210, 800), the hosting including, for a respective conversation: providing (506, 564) content of the conversation to the participants of the conversation, including: receiving (510, 566, 574, 1104), from each of the participants of the conversation, corresponding content and transmitting (510, 566, 574, 1104) the corresponding content to the other participants of the identified set of participants of the conversation; after the conversation has begun, adding an additional participant to the conversation; upon the additional participant being added to the conversation, providing (512, 568, 576) the content of the conversation to the additional participant, wherein the content provided to the additional participant includes all content provided to the identified set of participants of the conversation, and adding the additional participant to the identified set of participants, wherein the participants of the identified set of participants, including the additional participant upon the adding of the additional participant to the identified set of participants, are enabled to edit the content of the conversation and to see each other participant's edits; maintaining for each user of the server system a list of conversations in which the respective user is a participant; receiving a search request from a requesting participant of the identified set of participants, including the additional participant upon the adding of the additional participant to the identified set of participants; and in response to the search request, providing to the requesting participant a search result, wherein the search result includes one or more conversations of the list of conversations that is maintained for the requesting participant, wherein the one or more conversations match the search request. receiving (510, 566, 574, 1104), from each of the participants of the conversation, corresponding content and transmitting (510, 566, 574, 1104) the corresponding content to the other participants of the identified set of participants of the conversation; after the conversation has begun, adding an additional participant to the conversation; upon the additional participant being added to the conversation, providing (512, 568, 576) the content of the conversation to the additional participant, wherein the content provided to the additional participant includes all content provided to the identified set of participants of the conversation, and adding the additional participant to the identified set of participants, wherein the participants of the identified set of participants, including the additional participant upon the adding of the additional participant to the identified set of participants, are enabled to edit the content of the conversation and to see each other participant's edits; maintaining for each user of the server system a list of conversations in which the respective user is a participant; receiving a search request from a requesting participant of the identified set of participants, including the additional participant upon the adding of the additional participant to the identified set of participants; and in response to the search request, providing to the requesting participant a search result, wherein the search result includes one or more conversations of the list of conversations that is maintained for the requesting participant, wherein the one or more conversations match the search request.