Why I built Pixport
Three visas in a row, six photo specs, and one weekend project.
This spring I had to apply for three visas back-to-back — India for SIGMOD 2026, Korea for ICML 2026, and the US for PVLDB 2026. Three conferences, three visa forms, three sets of photo specs that are almost the same but not quite. That's how Pixport started.
The actual problem
Every country has its own visa-photo requirements. A few examples from the ones I ran into:
- India e-Visa — 1000×1000 px, white background, ≤ 1024 KB.
- Korea KVAC — 413×531 px, white, ≤ 100 KB.
- US DS-160 — 600×600 px, white, ≤ 240 KB.
Same general idea (head-and-shoulders, white background, tight crop), incompatible parameters in the details. And the tooling around it was all bad:
- Photo studios in Denmark charge around DKK 130–150 per set, and require an in-person visit during business hours — fine if you also need physical prints, overkill when you just need a JPEG to upload.
- Online visa-photo services run the processing on their own servers, which means uploading my face — biometric data — to a third party I can't audit. The whole pipeline is browser-doable; the upload is a privacy cost with no functional upside.
- Doing it by hand in Photoshop or online crop tools is possible, but you have to memorize six sets of dimensions, redo every step per country, and double-check file size compliance each time.
By visa number three, I'd done the same workflow three times. Classic signal that the workflow itself should be the product.
Why visa photos are a perfect Vibe-coding target
I've been thinking about what makes a problem suitable for the Vibe-coding loop — building fast with AI assistance, on the side. Visa photos turned out to tick every box:
- Specs are public and deterministic. Every consulate publishes the exact requirements. No ambiguity, no guesswork.
- The pipeline is tractable. Four steps: background removal → white fill → crop → compress.
- It runs entirely in the browser. Background-removal models are good enough now to run client-side, so the user's face never leaves their laptop. That kills the privacy objection.
- It scales by adding country presets, not by redesigning the system. Linear effort per new format.
A few weekends with Claude Code later, Pixport was a working prototype.
What it does
Upload a selfie. Pixport cuts the background, fills it pure white, crops to the country-specific aspect ratio, and compresses under the file-size limit. No upload, no account, no payment.
Six formats live in the public beta — US DS-160, Korea KVAC, India e-Visa, Schengen ICAO biometric, UK UKVI/VFS, Canada eTA IRCC — and more are added based on waitlist votes. If your country isn't there yet, joining the waitlist literally votes it onto the roster.
If you're in the visa-photo dance: pixport.hengyulab.com.