GeoTag adds geographic metadata to images locally in your browser. No uploads or server processing—complete privacy for EXIF, IPTC, and XMP editing.
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.
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.
GeoTag addresses the problem by:
Client‑side processing using Web Workers and the EXIF.js library.
Zero‑upload architecture – all operations run in the browser cache.
Modular metadata editors for EXIF, IPTC, and XMP.
Real‑time preview with a built‑in image editor.
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.
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.
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);
});
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.
Challenge | Solution |
|---|---|
Large image processing in browser | Chunked reading with |
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. |
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.
Yes. GeoTag is a PWA and works fully offline after the initial load.
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.