# Idify: a browser-based ID photo editor that keeps images on the device

> Idify is a GPL-3.0 pnpm workspace that crops, resizes and retunes ID, passport and visa photos entirely in the browser, so nothing is uploaded, but the tool is still English-only, filter-free and untagged since 2023.

**zhbhun/idify** — Make ID photo right in the browser.

- Repository: https://github.com/zhbhun/idify
- Website: https://idify.netlify.app/
- Stars: 1,056 · Forks: 118
- Language: TypeScript
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/zhbhun-idify

## A narrow personal task: turning one snapshot into an accepted document photo

Idify exists for one narrow, personal task: turning a phone snapshot into a document photo that a passport office or an ID application will actually accept. The README calls it a locally run browser-based application for creating ID photos, and the deployed build lives at idify.netlify.app with an Android binary linked from the project's releases page. The audience is therefore individuals, not studios: an applicant who needs a 35 by 45 millimetre crop for a visa form, or a face photo that already exists on a phone. There is no account system, no shared workspace and no review queue anywhere in the repository layout, so nothing in the project is aimed at a business that photographs people daily. The scope is editing rather than capture. Idify takes an image you already have and adjusts it, and the operation list in the README stops at cropping, resizing, and changes to brightness and contrast.

## One client package inside a pnpm workspace, which is what makes the local claim work

The repository root is a pnpm workspace. The top-level package.json is marked private, names the project idify at version 0.0.1, and declares a single dependency, @idify/web, pinned with the workspace:* protocol. The directory listing shows a packages/ folder alongside pnpm-workspace.yaml and pnpm-lock.yaml, and the one dev script delegates to the web package with pnpm --filter @idify/web dev. The editor therefore lives in a workspace member rather than at the root, and the privacy claim in the README rests on that shape: Idify states that it does not send images to a server and that all image processing is done locally, which is consistent with a client-side-only web package. The README names the supported documents as ID cards, passports and visas, and common ID photo dimensions for various countries appear as a completed roadmap item. What the repository does not expose is the rendering stack or the state layer behind those operations, so the exact canvas or image pipeline is not documented.

## Cloning the workspace and bringing up the dev server

The contribution path in the README has three steps: clone the repository, install the required node packages, and start the development server. Because this is a pnpm workspace and the lockfile present is pnpm-lock.yaml, the install command is pnpm rather than npm.

```shell
pnpm install
```

That command resolves the workspace protocol link to the @idify/web package and populates node_modules across workspace members. After it completes, the README asks for the development server.

```shell
npm run dev
```

The root script is defined as pnpm --filter @idify/web dev, so this starts the web package rather than a root binary. You should get a local development URL printed by that package's dev script, though the README does not state a port and the root package.json does not expose one either. For people who are not contributing, the README points at the Website link and an Android link that resolves to the project's releases page. That Android build is the only packaged binary offered, and since filters and internationalisation are still open roadmap items, it is worth checking what the browser version does that the Android build does not.

## The photos stay local, but Google Analytics still reports the session

The privacy story is the strongest claim in the README and also the most qualified. Idify states plainly that it does not send your images to a server and that all image processing is done locally, which is the part that matters for passport photos and national ID documents. The same section then discloses the analytics side: the application uses Google Analytics to collect basic visitor data, and, when Idify is installed as a Progressive Web App, information about the type of installation together with the installation time and date. Read plainly, your photos stay on the device while the usage trail still goes to a third party. The PWA detail matters for anyone reasoning about exposure, because install type and install timestamp are extra fields attached to a session. The README offers no opt-out steps, no self-hosted build of the analytics layer and no configuration key for disabling it, and the web build is hosted on Netlify with no documented environment variable for pointing the app at your own instance.

## Four unchecked roadmap items define what Idify cannot do yet

The roadmap is more informative than the release history, which contains a single entry, version 0.0.1-20231009, dated 2023-10-09. Four of the six listed items are still open. Adding feature descriptions to the homepage is not done. Filters such as black and white are not implemented. Internationalisation or localisation is not implemented. ID photo management, which would imply keeping a library of past documents, is not implemented. Two items are checked: common ID photo dimensions for various countries, and fine-tuning of image details such as brightness and contrast. Those unchecked items describe the practical limits in daily use. A user who wants to keep several ID photos, or who needs an interface in a language other than English, will not find that here. The single release tag and the absence of a changelog also mean no upgrade path is documented, and the README says nothing about how versions are rolled out to users.

## Where Idify is the wrong tool for the job

Idify is the wrong tool in several specific situations. It is a cropper for an image you already have, so it does not solve capture: there is no camera guidance, no background replacement, no eye or mouth position checking, and the described operations stop at cropping, resizing, brightness and contrast. Many document requirements ask for a plain white or light blue background, and nothing in the listed feature set removes or replaces an existing background. It is also wrong for any workflow that needs a trail. Every operation happens locally in the browser, which means no saved versions, no server-side record and no audit history, so an agency cannot point to what it produced last month. There is no batch mode, so a studio handling twenty applicants repeats the same single-image sequence twenty times by hand. There is also no documented command line interface or HTTP API, so Idify cannot be scripted into an existing pipeline; the only automation surface described anywhere in the repository is the workspace dev script.

## GPL terms and an untagged main branch shape the upgrade cost

Idify is released under the GPL License, which the README describes as free software for use. That choice matters for adoption, because GPL obligations attach when you distribute a modified version. Anyone embedding the @idify/web package into a hosted product inherits those terms, and anyone shipping the Android build faces the same question about what they redistribute. This is a licensing note rather than legal advice, and the outcome depends on how the code is used and distributed. On maintenance, the repository is not archived and the last push was on 2026-06-02, which shows the tree is not frozen, but the release history does not match that. The only tagged release, 0.0.1-20231009, dates from 2023-10-09, so close to three years of work sit on the main branch without a version bump. The README offers three lines of contribution guidance, no issue templates and no test instructions, so the practical cost of maintaining a fork of a single-package web app falls on whoever takes it.

## Conclusion

Adopt Idify when you need one document photo cropped and retouched without sending it anywhere, and you can live with an English-only interface, no filters and no saved library. Skip it for agency work, batch processing or any pipeline that needs scripting. Before depending on it, check the four unfinished roadmap items against your own requirements, and note that the only tagged release dates from 2023 while the last push was on 2026-06-02, so version stability is unproven.

## FAQ

### Does Idify upload my ID photo to a server?

No. The README states that Idify does not send your images to a server and that all image processing is done locally. It does use Google Analytics to collect basic visitor data, plus the installation type and installation time when it runs as a Progressive Web App.

### How do I run Idify locally for development?

Clone the repository, run pnpm install to install the required node packages, then start the server with npm run dev. The root script is defined as pnpm --filter @idify/web dev, so it serves the @idify/web workspace package rather than a root binary.

### Which documents and adjustments does Idify support?

The README names ID cards, passports and visas as editable documents, and lists cropping, resizing, and adjustment of brightness and contrast. Common ID photo dimensions for various countries are marked as done on the roadmap, while filters and localisation remain unchecked.

### Is there an Android version of Idify?

Yes. The README links an Android download that points to the project's GitHub releases, alongside the web application at idify.netlify.app. The only tagged release listed is 0.0.1-20231009 from 2023-10-09.

## Sources

- [License: GPL-3.0](https://github.com/zhbhun/idify/blob/main/LICENSE)
- [Project website](https://idify.netlify.app/)
- [README](https://github.com/zhbhun/idify/blob/main/README.md)
- [Releases](https://github.com/zhbhun/idify/releases)
- [zhbhun/idify on GitHub](https://github.com/zhbhun/idify)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zhbhun-idify
