build recent hash on save instead of render to conserve localStorage space