Web client boilerplate