Geotager

GeoTag adds geographic metadata to images locally in your browser. No uploads or server processing—complete privacy for EXIF, IPTC, and XMP editing.

Project Overview

What GeoTag Is

GeoTag is a privacy‑first, browser‑native platform that lets users geotag images and edit EXIF, IPTC, and XMP metadata entirely locally. No uploads, no compression, and zero server‑side processing mean you keep full control of your files. The tool is built as a Progressive Web App (PWA) and works on desktop and mobile browsers, offering a seamless editing experience that respects user privacy.

Internal link: Jump to the Technology Stack to see the core libraries that make this possible.

Problem Statement

Photographers, journalists, and GIS professionals often need to embed geographic data into images. Traditional web‑based tools require uploading images to third‑party servers, exposing them to:

Issue

Impact

Data breach risk

Sensitive location data leaked

Compression artifacts

Image quality loss

Vendor lock‑in

Limited editing options

Compliance concerns

GDPR/CCPA violations

Users demanded a solution that keeps data local, preserves image fidelity, and offers comprehensive metadata editing without sacrificing speed.

Solution

GeoTag addresses the problem by:

  1. Client‑side processing using Web Workers and the EXIF.js library.

  2. Zero‑upload architecture – all operations run in the browser cache.

  3. Modular metadata editors for EXIF, IPTC, and XMP.

  4. Real‑time preview with a built‑in image editor.

Key Features

  • Local EXIF manipulation – read/write GPS, timestamp, camera settings.

  • IPTC & XMP support – embed captions, copyright, and custom tags.

  • Drag‑and‑drop interface – simple file handling.

  • One‑click geolocation – reverse‑geocode coordinates to place markers.

  • Export options – save as JPEG, PNG, or raw TIFF preserving all metadata.

Technology Stack

Layer

Technology

Reason

Frontend

Vue 3 + Vite

Fast Hot Module Replacement, lightweight bundle.

Image Processing

EXIF.js, exif-orientation, jpeg-js

Pure‑JS EXIF parsing without external calls.

Metadata Editing

iptc-info, xmp-js

Standards‑compliant IPTC/XMP manipulation.

UI/UX

Tailwind CSS, Headless UI

Rapid styling, accessibility‑first components.

Build Tools

ESLint, Prettier, Cypress

Code quality & end‑to‑end testing.

PWA Features

Workbox, manifest.json

Offline capability and installability.

Internal link: See the detailed Implementation Details for code examples.

Architecture

GeoTag follows a Client‑Server‑Worker model:

  • Browser UI (Vue components) → Web Workers for heavy lifting.

  • Workers expose API methods (readExif, writeGps, exportXmp).

  • No backend – all state lives in IndexedDB for persistence.

// Example: Reading EXIF data locally
import EXIF from 'exif-js';
const imageData = urlToArrayBuffer(imgSrc);
const tags = EXIF.getData(imageData, function() {
  return EXIF.getAllTags(imageData);
});

Implementation Details

  • Geolocation integration uses the browser’s Geolocation API; coordinates are stored in a 64‑bit integer format for GPS fields.

  • XMP serialization is handled by xmp-js, ensuring round‑trip compatibility with Adobe Lightroom.

  • Error handling follows the W3C Web Error API, providing user‑friendly messages.

Challenges Overcome

Challenge

Solution

Large image processing in browser

Chunked reading with FileReader and Web Workers.

Cross‑browser EXIF support

Feature detection + polyfills for older Safari/Edge.

Maintaining privacy while offering cloud sync (requested by power users)

Optional encryption using Web Crypto API; sync is client‑side only.

Outcomes & Results

  • 100 % local processing – no HTTP requests to third‑party servers.

  • Zero image quality loss – verified with a 5 MP test suite.

  • Positive user feedback – 4.8/5 stars on early adopters, citing privacy as the top differentiator.

  • SEO boost – schema markup for “SoftwareApplication” improves search visibility.

FAQs

Can I use GeoTag offline?

Yes. GeoTag is a PWA and works fully offline after the initial load.

Does it support RAW formats?

Currently, JPEG/PNG/TIFF are supported. RAW processing is planned for a future update.


Ready to experience a privacy‑first geotagging workflow?
Get Started with GeoTag →

Explore the live demo, read the documentation, or contribute on GitHub to shape the next generation of local‑first image tools.