Project Case Study

PhotoSahi

Privacy-first passport and visa photo generation running entirely inside the browser.

By Mantosh Kumar · Updated July 13, 2026

This page answers:How do you build a privacy-first passport and visa photo workflow without a backend?

Problem

Official photo requirements vary, while many preparation tools require people to upload sensitive images to an external service.

Challenge

The workflow had to make cropping, sizing, adjustment, preset application, and export understandable while keeping image data local. Removing the backend improved privacy but moved performance, compatibility, and resource constraints into the browser.

My Contribution

I designed and built the browser-only product flow, local Canvas processing, document-photo preparation steps, responsive interface, privacy boundary, and public project documentation.

Architecture

One private, browser-only journey from the original photo to a ready-to-use file.

Your photo stays on this device No backend, mandatory upload, or server-side image storage.
  1. 1 · Input Choose a photo Read locally from your device
  2. 2 · Browser Process with Canvas Crop, resize, and adjust
  3. 3 · Prepare Build the output Apply the selected photo preset
  4. 4 · Output Download the result Save the processed file directly

Device → browser memory → download. The image never needs to cross a network boundary.

Engineering Decisions

Keep image processing in the browser

I chose browser-side processing because the core transformations do not require server state. Images stay in browser memory, avoiding mandatory uploads, backend latency, operating cost, and an unnecessary trust boundary. The trade-off is that device capability and browser behavior become part of the product’s operating envelope.

Optimize for immediate local interaction

I used local Canvas operations so cropping, resizing, and enhancement can respond without a network round trip. That makes the workflow feel direct on common desktop and mobile browsers. It also means large images and lower-powered devices must be handled carefully rather than scaled by adding server capacity.

Prefer a focused workflow over a general editor

I shaped the product around passport and visa photo preparation instead of exposing every possible image control. A narrower sequence reduces decision load and keeps technical operations connected to the user’s actual task. The trade-off is less flexibility for use cases outside document-photo preparation.

Next improvements: verify more document presets, refine background controls and previews, and improve first-use guidance.

Outcome

Before

Preparing an ID photo often meant using separate editing steps or uploading the image to a remote service.

After

One guided browser workflow reads, processes, prepares, and downloads the result without mandatory upload or server-side storage.

Evidence

Working productThe deployed application can be tested directly in a browser.
Public sourceThe implementation and repository history are available on GitHub.
Architecture pathThe diagram above shows device → browser memory → download.
Visible privacy boundaryThe application requires no backend or mandatory image upload for its core workflow.

What This Project Demonstrates

Privacy-First Design

Removed an unnecessary upload boundary by keeping image processing in browser memory.

Browser Engineering

Used native browser capabilities to deliver cropping, resizing, enhancement, and download without a backend.

Product Thinking

Turned document-photo constraints into a focused workflow rather than exposing raw image operations.

Performance Judgment

Chose local Canvas operations for immediate interaction while acknowledging device and compatibility constraints.

User Experience

Organized a technical image-processing pipeline into a guided, mobile-friendly sequence.

This project demonstrates my ability to make privacy, architecture, performance, and usability reinforce one another in a browser product.

Reflection

I would still choose a browser-first architecture because privacy and immediacy are central to this workflow. With today’s knowledge, I would invest earlier in broader preset verification, compatibility testing, background controls, and first-use guidance before considering any backend—the current limitations are product-quality gaps, not evidence that local processing was the wrong boundary.

Need a privacy-first browser product that avoids unnecessary data collection?