Not exactly sure, but I would deeply investigate the possibility of using Meteor, mostly because how easy it is to create web, desktop and mobile versions. The realtime part is also pretty much transparent when using meteor. So:
Frontend / backend: Meteor Database: Mongo (part of meteor for dev environments) Deployment: Personal preference Linode vps but probably not the easiest way to go about it.