Single-page interface, using JSON API and loosely-structured client-side JS