Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

An intelligent travel tool—upload raw photos, get auto visual route maps and seamless, essence-capturing vlogs. A vibe coding project.

Notifications You must be signed in to change notification settings

caterpi11ar/locusify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

129 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Locusify

Locusify

Turn your GPS-tagged travel photos into interactive route maps and cinematic journey replays — instantly, privately, for free.

🌐 Try it Live  ·  Product Hunt  ·  中文

Product Hunt License Node pnpm Privacy


What is Locusify?

Locusify is a free, browser-based travel app that transforms GPS-tagged photos into interactive route maps and animated journey replays. It reads the GPS coordinates embedded in each photo's EXIF metadata, plots them on an interactive map, and lets you replay your journey as a cinematic video — all processed locally on your device, with no photos or location data ever uploaded to a server.


Demo

Locusify Demo — GPS photo route replay


How It Works

  1. Upload your GPS-tagged travel photos (JPG, PNG, HEIC, WebP, AVIF)
  2. Extract — Locusify reads GPS coordinates from each photo's EXIF data, right in your browser
  3. Visualize — an interactive map plots your route with photo markers, clusters, and an animated trajectory line
  4. Replay — watch your journey play back in chronological order, then export it as an MP4 video

Features

  • GPS Photo Mapping — Automatically extracts location data from EXIF metadata and plots photos on an interactive map
  • Trajectory Replay — Timeline-based animated route playback with smooth camera follow and adjustable speed
  • Video Export — Record and download your journey replay as an MP4 video to share or keep
  • Photo Clusters — Automatically groups nearby photos at higher zoom levels to keep the map clean
  • 100% Local Processing — All photo parsing and map rendering happens in your browser; nothing is uploaded
  • Drag-and-Drop Upload — Upload multiple photos at once with automatic GPS validation
  • Multi-language — Available in English and Chinese (中文)
  • Dark / Light Mode — Respects your system preference, or switch manually

Privacy

Locusify is built privacy-first:

What we do What we don't do
Process all photos locally in your browser Upload your photos to any server
Use GPS data only for map display, in-session Store or share your location data
Use anonymous page-view analytics (Google Analytics) Collect personal information or sell data

Your photos never leave your device. Close the browser tab and they're gone.


Who Is Locusify For?

  • Solo travelers who want to visualize and remember exactly where they went
  • Travel photographers who shoot hundreds of geotagged photos and want to see the full picture
  • Vloggers and content creators who want a quick, beautiful route replay video without video editing software
  • Anyone who has ever wondered "where exactly did I go on that trip?"

Frequently Asked Questions

What is GPS photo mapping? GPS photo mapping is the process of reading the geographic coordinates (latitude and longitude) embedded in a photo's EXIF metadata and displaying the photo's location on a map. Most smartphones automatically tag photos with GPS data when location access is enabled.

Does my phone camera take GPS-tagged photos? Most modern smartphones (iPhone, Android) embed GPS coordinates in photos by default when location permissions are granted for the Camera app. Photos taken with standalone cameras may not have GPS data unless you use a GPS logger or a camera with built-in GPS.

Does Locusify upload my photos to a server? No. All processing — GPS extraction, map rendering, trajectory calculation, and video export — happens entirely in your browser using JavaScript. Your photos are never sent to any server.

What photo formats does Locusify support? Locusify supports JPG, PNG, HEIC, WebP, and AVIF. At least 2 photos with valid GPS data are required to generate a trajectory.

How many photos do I need? You need at least 2 photos with GPS coordinates to generate a route. There's no hard upper limit, though very large batches (500+ photos) may require more processing time depending on your device.

Is Locusify free? Yes. Locusify is completely free with no accounts, no subscriptions, and no feature paywalls.

Can I export my journey as a video? Yes. After viewing the trajectory replay, you can record the playback and download it as an MP4 video file.

What if some of my photos don't have GPS data? Locusify validates GPS data during upload and clearly marks which photos have location data and which don't. Photos without GPS are excluded from the trajectory but you can still see them listed.


Roadmap

  • GPS photo mapping and interactive map view
  • Trajectory replay with animation controls
  • Video export (MP4)
  • Photo clustering
  • Dark mode + multi-language
  • Trip history — save and revisit past journeys
  • Multi-trip view — display multiple trips on a single map
  • GPX export — export your route as a GPX file for use in other apps

Tech Stack

Category Technology
Framework React 19
Language TypeScript
Build Tool Vite 7
Styling Tailwind CSS 4
Map MapLibre GL
State Management Zustand
Data Fetching TanStack Query
Animation Motion
UI Primitives Radix UI
GPS Extraction exifr

Getting Started (Development)

Prerequisites

  • Node.js >= 22
  • pnpm >= 10

Setup

# Clone the repository
git clone https://github.com/caterpi11ar/locusify.git
cd locusify

# Install dependencies
pnpm install

# Start the development server
pnpm dev

Available Scripts

Command Description
pnpm dev Start Vite development server
pnpm build Build for production (tsc + vite build)
pnpm preview Preview production build
pnpm lint Run ESLint with auto-fix
pnpm typecheck Run TypeScript type checking

Project Structure

src/
├── assets/          # Static assets
├── components/      # Shared UI components (shadcn/ui)
├── hooks/           # Custom React hooks
├── layout/          # Layout components
├── lib/             # Utility libraries
├── locales/         # i18n translations (en, zh-CN)
├── pages/
│   ├── explore/     # Explore page
│   ├── map/         # Map page + trajectory replay
│   ├── settings/    # Settings (language, theme, privacy)
│   └── splashScreen/# Splash / landing screen
├── routers/         # Route definitions
└── types/           # TypeScript type definitions

License

ISC © caterpi11ar

About

An intelligent travel tool—upload raw photos, get auto visual route maps and seamless, essence-capturing vlogs. A vibe coding project.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages