JS compatible client