Live · 2024
Passport Photo Maker
In-browser, no uploads, works offline
My partner was applying for a Uzbekistan visa. The government portal kept rejecting her photo: the dimensions were wrong, the DPI was off, the file was too large. Every existing tool she tried either failed the spec or the file-size cap.
I built the one that didn't, then shipped it publicly so anyone in the same situation could use it for free.
It handles three formats: International (ICAO), USA, and Canada, plus custom dimensions. 300 DPI with the metadata patched directly into the JPEG binary, because most government portals check for it. Binary-search compression iterates quality levels until the file stays under 1 MB. Drag to position and zoom, with a country-specific eye-zone overlay so the face lands where the spec requires.
passportphoto.horizonfall.comTechnical detail
100% client-side. A single index.html, around 58 KB. No backend, no npm install, no framework. All the image manipulation runs in the browser via the HTML5 Canvas API. Photos never leave the device. No cookies, no tracking, works offline after the first load. That is a privacy argument, not just a technical one: a passport photo is personally identifying data.
The DPI metadata is JFIF-patched directly into the JPEG binary stream rather than relying on the browser's default export, which most portals do not honour. The binary-search compression loop runs quality levels from 0.95 down until the output is under the 1 MB cap, guaranteeing the threshold is met without unnecessary quality loss.
Deployed on GitHub Pages with a custom domain at passportphoto.horizonfall.com.