Exif Away: Private Metadata Cleaner
I built Exif Away because a photo can reveal more than what’s in the frame. It removes EXIF, GPS, camera, and timestamp metadata from photos, videos, and audio, right in your browser. Your files stay on your device.
I wanted the tool to be honest about what it can clean. It processes supported formats without re-encoding the media, then checks the result again. If a format cannot be cleaned safely, it explains why instead of quietly skipping it.
Built with React, TypeScript, and Vite, with exifr for reading image metadata and fflate for batch downloads. I’d love feedback, especially on what formats you’d want supported next.
Tech stack
- Codex (GPT-6 Astra)
- Astra (GPT-6 Astra)
Links
Prompt steps
Step 1
I want to rebuild Exif Away as a small, polished web app for removing private metadata from photos, videos, and audio before people share them. Use React, TypeScript, and Vite, and keep everything client-side. Files should never be uploaded or sent to a server.Step 2
The cleanup should work on the original file bytes so the media itself is not decoded and re-encoded. Support JPEG, PNG, WebP, GIF, MP4, MOV, M4A, MP3, and FLAC. Use exifr to read useful image metadata for the report, and fflate for downloading a batch as a ZIP. If a format cannot be cleaned safely, detect it and explain the limitation instead of saying it worked. Let people add multiple files by dragging them in, choosing them, or pasting. Show each file’s status, size, and how much data was removed. Let them expand a details section to see what was found, and re-scan the output before calling it clean. They should be able to download individual files or save the whole batch together.Step 3
For the design, I’m after something quiet and trustworthy, not a generic security dashboard. Use a simple brand header, a large clear headline, and a clean file drop card. On wide screens, put the headline beside the card, then stack them on smaller screens. Keep the palette mostly charcoal and soft gray with a restrained blue for the main action. Add a subtle dithered background texture that reacts gently to the pointer, but keep it low contrast so it never competes with the content. Use a locally bundled Inter font for the heading and the system font for the rest.Step 4
Make it responsive, accessible, and comfortable in both light and dark mode. Respect reduced-motion preferences. Please build the actual file-cleaning flow and downloads, not just a landing page mockup.
1 like