Geofuentes
Description
Geofuentes is a cross-platform mobile app for iOS and Android that maps the public drinking fountains of Granada, helping locals and tourists find safe water, accessible points, and ornamental fountains around the city.
Beyond a simple map, the app curates thematic walking routes —like the Ornamental Fountains of the historic centre or the Albaicín trail— that connect fountains into guided experiences, each with its distance, estimated duration, and accessibility information.
Timeline
The project started in October 2025
Oct 2025 - Nov 2025: map, clustering, routes, and Supabase integration
Techonologies
React Native
TypeScript
Supabase
PostgreSQL
Features
Interactive map with 400+ public fountains
Marker clustering for smooth high-density rendering
Curated walking routes drawn as map polylines
Animated bottom sheet with expandable route cards
Fountain details: potable, accessible, and ornamental
GPS location and nearby-fountain search
Featured 'route of the day' highlighting
Custom minimalist map style
Supabase backend with geospatial queries
Responsive, gesture-driven navigation
Project Overview


Geofuentes was born from a simple everyday question in Granada: where is the nearest fountain to refill my bottle? The goal was to turn the city's network of public fountains into something searchable, visual, and genuinely useful for both residents and visitors.
The app is built with React Native to ship a single TypeScript codebase across iOS and Android, using react-native-maps over Google Maps with a custom minimalist style that hides visual noise and puts the fountains front and centre.
Rendering hundreds of fountains without hurting performance was the core challenge. Marker clustering groups nearby points as you zoom out, so the map stays smooth even with 200+ fountains on screen, while a Gorhom bottom sheet with Reanimated powers the fluid, expandable route cards.
Each fountain carries its own attributes —potable, accessible, or ornamental— and the app layers curated walking routes on top, connecting selected fountains with polylines and showing distance, duration, and accessibility so users can pick an experience that fits them.
On the backend, Supabase and PostgreSQL store the fountains and expose geospatial RPC functions for nearby search and text queries, giving the app a scalable data layer ready to grow from mocked data into a live, city-wide service.