JS only web app architectures