Problem
Build a map-centered travel discovery platform that works seamlessly on the web and as a native mobile app, with precise geolocation, geotagged media uploads, and a smooth experience for marking and sharing places.
Web / App
Geogram turns travel experiences into a shareable personal map, connecting travelers through real places instead of sponsored content.
A map-first social platform for travelers to log the places they've visited with photos and videos, and discover authentic destinations through other travelers' maps.
Executive summary
Problem
Build a map-centered travel discovery platform that works seamlessly on the web and as a native mobile app, with precise geolocation, geotagged media uploads, and a smooth experience for marking and sharing places.
Solution
Built the platform using Next.js 15 for web and Expo/React Native for iOS and Android, with Supabase + PostGIS for geospatial data storage, MapLibre GL for web map rendering, and React Native Maps for mobile. Authentication uses magic links — no password required.
Image gallery
Geogram is a map-first social platform built for travelers to log the places they’ve been and discover authentic destinations through other people’s maps.
The core idea is simple: each user has a personal map where they can drop pins on places they’ve visited, add photos and videos, and control who can see each memory. The result is a unique geographic profile, accessible at geogram.app/@username.
The platform is available on the web and as a native app for iOS and Android — free on both stores.
Geogram was designed as an alternative to traditional travel platforms that prioritize sponsored content and commercial POIs. Here, discovery happens through real places that real travelers actually visited.
Key features include:
I built Geogram entirely solo, from product conception to store publishing. This covered product strategy, UX design, full-stack implementation of both the web frontend and the mobile app, the backend, infrastructure, and the App Store and Google Play submission process.
The project required balancing three surfaces simultaneously — responsive web, iOS, and Android — while sharing the same data layer and business logic.
Putting the map at the center of the experience introduced meaningful technical challenges. Geospatial data has specific requirements — proximity queries, bounding box filtering, spatial indexes — which required PostGIS on the database layer.
On the web frontend, MapLibre GL provides map rendering without Google Maps licensing constraints, with tiles served by MapTiler. On mobile, React Native Maps integrates the native mapping engine for each platform.
The stack was chosen to maximize code reuse between web and mobile:
Geogram is live and available on both stores. It’s a functional product with real users, built from scratch by a single person.
The project represents the convergence of several technical challenges — geospatial, cross-platform, social, media — into a cohesive experience. More than a technical showcase, it’s a platform with a clear purpose: giving travel back the value of human discovery.
Stack
Tags
Next projects to explore