Here's another suggestion, I was planning on testing it out at some point, but never got around to doing it. On the first load, download all of the client-side JS files and put it into a local storage. Then let people bookmark the url that contains bookmarklet that just executes the code from local storage directly. Should significantly improve the first-time load performance, because the app is basically installed locally.