...
The client uses responsive css media queries to dynamically restructure the document to account for different sized displays. We started with a multi column layout for the desktop experience, that stacks to a thin single column layout for the mobile site. The app is updated in realtime using web-sockets, or suitable fallbacks from the socket.io library, to allow a user to see new invitations and contact requests as they occur, with no page reload. On mobile, the realtime updating unfortunately uses a large amount of data because it is constantly sending.