Cool to see someone else doing this.<p>If I was doing this myself, I'd suggest working on js.php. It's taking over 1s to get that single file, which appears [1] cacheable. An nginx reverse proxy or something comparable would make this way faster. If there are uncacheable parts of this file, then those could be separated out.<p>It is interesting that the script is loaded async with "defer", so the page is functional (but not ajax-y) before it's loaded. So the long load time isn't quite so bad. But I'd be interested to hear why the whole file isn't just cached.<p>Also, for a single-page website like this, where all navigations are loaded with AJAX, I'd suggest inlining all the CSS and JS.<p>Finally, I'd think about making the entire page itself cached. There doesn't appear to be any sort of login, so it's probably feasible. But I'm not sure how the Settings stuff is implemented; if that's persisted server-side then caching the page wouldn't work.<p>[1] The Cache-Control header specifies a max-age but not public/private. I honestly don't even know what semantics this has - but it's probably best to make it explicit.
You could also try <a href="http://perfmonkey.com" rel="nofollow">http://perfmonkey.com</a> for automating these perf audits. If uses the same tools used by Chromium for finding perf telemetry - <a href="http://axemclion.github.com/browser-perf" rel="nofollow">http://axemclion.github.com/browser-perf</a>.<p>Here is a run for canIuse using the automated tool - <a href="http://www.perfmonkey.com/#/trynow/results/travis/53663113" rel="nofollow">http://www.perfmonkey.com/#/trynow/results/travis/53663113</a>