Client-side single file generation