client side javascript library