JAM: client-side JavaScript, reusable APIs, and prebuilt Markup