Turn your GPS-tagged travel photos into interactive route maps and cinematic journey replays — instantly, privately, with free and premium plans.
🌐 Try it Live · Product Hunt · 中文
Locusify is a 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 photo processing happens locally on your device, with no photos or location data ever uploaded to a server.
- Upload your GPS-tagged travel photos (JPG, PNG, HEIC, WebP, AVIF)
- Extract — Locusify reads GPS coordinates from each photo's EXIF data on your device
- Visualize — an interactive map plots your route with photo markers, clusters, and an animated trajectory line
- Replay — watch your journey play back in chronological order, then export and share it as a video
- 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 & Share — Record your journey replay as a video, then download or share it directly
- 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 on your device; nothing is uploaded
- Drag-and-Drop Upload — Upload multiple photos at once with automatic GPS validation
- Multi-language — Available in English and Chinese (中文)
- Right-Click / Long-Press to Add Photos — Right-click (desktop) or long-press (mobile) anywhere on the map to add photos at that exact location, even without GPS data in the original files
- Dark / Light Mode — Respects your system preference, or switch manually
- Account & Authentication — Sign in with Google, GitHub, or email (OTP or password); account syncs your subscription across devices
Locusify is built privacy-first:
| What we do | What we don't do |
|---|---|
| Process all photos locally on your device | 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 |
| Sync your account profile and subscription status | Upload your photos or location data |
- 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?"
| Feature | Locusify | Travel Animator | Polarsteps |
|---|---|---|---|
| Platform | Web | Mobile App | Mobile App + Web |
| Pricing | Free / Pro / Max | Free + PRO | Free + Paid Books |
| Route Source | Photo EXIF (auto) | Manual / GPX / Google Maps | Real-time GPS tracking |
| Video Export | Video replay | 4K animated route video | None |
| Privacy | 100% local processing | Cloud-based | Cloud-based |
| AI Features | Planned (transitions, vlog) | None | None |
| Map Styles | MapLibre GL | 30+ styles, flat + globe | Built-in |
| 3D Models | — | 250+ vehicles | — |
| Account Required | Yes | Yes | Yes |
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 on your device. 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? Locusify has three plans: Free (core GPS mapping features), Pro (all premium templates + full customization), and Max (everything in Pro + priority support + early access). Pro and Max are activated via redemption codes. Core GPS mapping and trajectory replay are always free.
Can I export my journey as a video? Yes. After viewing the trajectory replay, you can record the playback and download or share it as a video.
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. Alternatively, you can right-click (desktop) or long-press (mobile) anywhere on the map and select "Add Photos" to place photos at a specific location manually — no GPS data required.
- GPS photo mapping and interactive map view
- Trajectory replay with animation controls
- Video export
- Photo clustering
- Dark mode + multi-language
- User accounts — sign in with Google, GitHub, or email
- Subscription plans — Free, Pro, and Max tiers with redemption codes
- Trip history — save and revisit past journeys
- Multi-trip view — display multiple trips on a single map
- AI transitions — intelligent scene-aware transitions between photos during trajectory replay
- AI video generation — automatically produce cinematic travel vlogs with smart editing, pacing, and storytelling
- Landing page — SEO-optimized marketing page to improve search engine visibility and organic traffic
| 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 |
- Node.js >= 22
- pnpm >= 10
# Clone the repository
git clone https://github.com/caterpi11ar/locusify.git
cd locusify
# Install dependencies
pnpm install
# Start the development server
pnpm dev| 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 |
src/
├── assets/ # Static assets
├── components/ # Shared components (UI/auth/upload/feedback)
├── hooks/ # Custom React hooks
├── layout/ # Layout components
├── lib/ # Utility libraries
├── locales/ # i18n translations (en, zh-CN)
├── pages/
│ ├── auth/ # OAuth callback + password reset
│ ├── error/ # Error boundaries and fallback pages
│ ├── map/ # Map page + trajectory replay
│ └── settings/ # Settings drawer and account sections
├── stores/ # Zustand stores
├── routers/ # Route definitions
└── types/ # TypeScript type definitions
ISC © caterpi11ar




