Inspect camera settings, GPS, and privacy tags in your browser. Strip metadata before you share.
Features • Privacy • Tech Stack • Getting Started • Deployment • License
Every photo you take carries hidden digital footprints: precise GPS coordinates, camera serial numbers, creator identities, software history, and exact timestamps.
Most online metadata viewers upload your photos to remote servers to parse them. ExifGuard is completely different.
ExifGuard is a modern, open-source, client-side EXIF metadata inspector and privacy sanitization tool. All parsing, rendering, and metadata stripping is performed directly inside your browser's memory via Web APIs. Your images are never uploaded, logged, or sent over any network.
- Privacy Risk Audit & Score: Real-time 0–100 privacy risk gauge that flags sensitive data points (embedded GPS coordinates, camera serial numbers, author names, software edit history).
- Comprehensive EXIF, IPTC & XMP Extraction:
- Camera & Optics: Make, model, lens profile, focal length, 35mm equivalent.
- Exposure & Settings: Aperture, shutter speed, ISO sensitivity, exposure mode, metering, white balance, flash status.
- Color & Technical: Color space, image dimensions, megapixel count, bit depth, compression, orientation.
- GPS & Geolocation Inspector: Interactive coordinates readout with direct links to OpenStreetMap or Google Maps.
- 1-Click Metadata Stripper: Strip all EXIF, GPS, IPTC, and XMP tags. Download clean, privacy-safe images. (Note: JPEG output re-compresses at 0.92 quality)
- Side-by-Side Comparison: Compare metadata fields across two images.
- Multi-Image Filmstrip: Drag-and-drop single files or entire batches.
- Export Options: Export to JSON or CSV. One-click copy formatted EXIF summary.
- Modern Dark Aesthetic: Clean, responsive UI with fluid transitions.
[ Your Device ]
│
(Drop Image)
▼
[ HTML5 FileReader ] ────> In-Memory ArrayBuffer
│
┌──────────────┴──────────────┐
▼ ▼
[ ExifReader Parser ] [ HTML5 Canvas Engine ]
- Extract EXIF, GPS, XMP - Strip metadata tags
- Compute Privacy Score - Generate sanitized image
│ │
▼ ▼
[ Interactive UI ] [ Clean File Download ]
- Zero Server Uploads: Static single-page application with no backend.
- In-Memory Parsing: Files read into transient
ArrayBufferinstances. - No External Tracking: No analytics, no cookies, no telemetry.
| Format | Extension | Parsing | Stripping |
|---|---|---|---|
| JPEG | .jpg, .jpeg |
✅ | ✅ |
| PNG | .png |
✅ | ✅ |
| WebP | .webp |
✅ | ✅ |
| TIFF | .tiff, .tif |
✅ | ❌ (browser canvas limitation) |
- Framework: Next.js 15 (Static Export / App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- Animation: Framer Motion
- Icons: Lucide React
- EXIF Engine: ExifReader
- Components: shadcn/ui
- Node.js: v18.17.0 or higher (v20+ recommended)
- Package Manager:
npm,pnpm, orbun
-
Clone the repository:
git clone https://github.com/wahidulsami/exif-guard.git cd exif-guard -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000.
| Command | Description |
|---|---|
npm run dev |
Development server with Turbopack |
npm run build |
Static HTML export to ./out |
npm run start |
Serve production build locally |
npm run lint |
ESLint checks |
ExifGuard exports to a pure static bundle (output: "export"), deployable to any static host.
- Build Command:
npm run build - Output Directory:
out - Node.js Version:
20+or24+
Import the repository. Next.js is auto-detected.
Deploy the ./out folder via actions/deploy-pages.
Distributed under the MIT License. See LICENSE for details.