Back to homepage

Web / App

Geogram

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.

Project type: Web / App Status: live Year: 2026

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 gallery selected

First-person notes on product decisions, execution, and lessons from this project.

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.

What Geogram offers

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:

  • personal map with pins for visited, current, and planned places;
  • photo uploads and YouTube video attachments per pin;
  • per-pin privacy controls (public, friends-only, or private);
  • public profile accessible via a direct URL;
  • discovery feed with recent pins from other travelers;
  • magic link signup — no password needed.

My role

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.

Product and technology decisions

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:

  • Next.js 15 with App Router for the web;
  • Expo 54 with Expo Router for iOS and Android;
  • Supabase as the full backend (auth, database, storage, edge functions);
  • AWS S3 with presigned URLs for media uploads;
  • Vercel for web deployment and EAS for mobile builds.

Result

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

Next.jsReact NativeExpoTypeScriptTailwind CSSSupabasePostgreSQLPostGISMapLibre GLMapTilerAWS S3AWS SESVercelCloudflareSentryEAS

Tags

MapsTravelSocialMobileWebGeolocation

Next projects to explore