Project
📍 PinPoint
A privacy-first map tool for saving places that matter.
The problem
Modern map apps are powerful, but many are optimized for engagement rather than ownership. They require accounts, store location history in the cloud, and blend personal memories with commercial recommendations.
PinPoint is the focused alternative: mark personal places and come back to them quickly — privately, with no backend involved.
The use case
- Where did I park?
- What was that quiet fishing spot?
- Where exactly did we take that photo?
- Where did I propose?
Core principles
Three constraints that shape every product decision.
-
Local-first. Pins are stored in LocalStorage on-device. No server, no account, no cloud.
-
Minimal surface area. No ratings, reviews, ads, or recommendation loops. Just your places.
-
Utility over complexity. Precision placement and fast retrieval first. Everything else is secondary.
Features & architecture
🎯 Precision pins
Tap to draft, drag to fine-tune. Coordinates are exact.
🏷️ Category system
10 visual categories with custom icons and colors for instant recognition.
🗺️ Map layers
Standard, dark mode, and satellite options via OSM, Carto, and Esri tiles.
🧭 Smart directions
One-tap handoff to Google Maps navigation from any saved pin.
🔍 List tools
Live search, category filters, and mobile-friendly swipe-to-delete.
📱 PWA support
Home-screen install and fullscreen app-like usage on mobile.
Technical stack
- Frontend: React 19, Vite, TypeScript, Tailwind CSS
- Maps: Leaflet with OSM, Carto, and Esri raster tiles
- State: LocalStorage with JSON serialization and safe parsing
- UX: Mobile-first, safe-area handling, custom transitions
- Delivery: No backend, no service worker (intentional early-stage tradeoff)
Tradeoffs & constraints
PinPoint intentionally avoids accounts, sync, and server infrastructure. That keeps it private and simple, but it means:
- Clearing browser data deletes saved pins
- No automatic backup yet
- Not built for collaborative map editing
What I learned
- Local-first removes ops overhead but raises UX responsibility around data safety
- Mobile map UX depends heavily on spacing, safe areas, and gesture expectations
- Service workers should be introduced only with strict cache discipline
- The smallest feature sets are often the hardest to refine
Future directions
- Optional encrypted cloud backup
- Shareable view-only maps
- Folder-based pin collections
- A lightweight opt-in sync mode
Try PinPoint
Drop a pin. Name it. Find it again. That’s it — no account needed.
PinPoint is independently built and maintained. If it helps you, consider supporting its development.