client-side compression