| Category | Count | Percentage |
|---|---|---|
| Landmarks | 22 | 42% |
| Museums | 5 | 9% |
| Parks | 3 | 6% |
| Entertainment | 4 | 8% |
| Attractions | 8 | 15% |
| Other | 11 | 20% |
| Endpoint | Method | Description | Parameters |
|---|---|---|---|
| /api/locations | GET | List locations with radius filtering | lat, lng, radius, category |
| /api/locations/[id] | GET | Get single location by ID | id (UUID) |
| /api/locations/search | GET | Text search across name/description | query |
Leaflet integration with OpenStreetMap tiles, custom markers, popup interactions, and smooth pan/zoom
8 category types with visual badges, instant filtering, and clear all option
Real-time text search with dropdown results, debounced input, and keyboard navigation
Lazy-loaded images, category badges, distance display, and click-to-detail navigation
localStorage persistence, toggle UI, favorites page, and heart animations
Native Web Share API with fallback to clipboard copy for all locations
Filter by 8 location types with visual badges. Instant client-side filtering with distance sorting.
Real-time search across location names and descriptions with dropdown suggestions.
Individual location pages with embedded map, full description, Wikipedia link, and image.
Toggle favorites with heart button, persisted to localStorage, dedicated favorites page.
Native Web Share API support with clipboard fallback. Share any location instantly.
89% coverage with Wikipedia thumbnails, lazy loading, loading states, and category fallbacks.
Best for: Tourism app focused on Ghent/Belgium
Best for: Global location discovery platform