DEV Community

Cover image for LoreDrop: Crowdsourced Local Survival Kits, Powered by Gemini & Google Search
Amaan Syed
Amaan Syed

Posted on

LoreDrop: Crowdsourced Local Survival Kits, Powered by Gemini & Google Search

DEV Weekend Challenge: Community

This is a submission for the DEV Weekend Challenge: Community

The Community

Travelers and locals everywhere.

Whether you're a backpacker in Bangkok, a student moving to a new city, or a local who's tired of watching tourists fall for the same scams β€” you're part of this community. Every neighborhood has unwritten rules, hidden gems, and survival tips that only locals know. The problem? That knowledge lives in scattered Reddit threads, word of mouth, and hard lessons learned.

LoreDrop is for anyone who's ever thought: "I wish someone had told me this before I got here."

What We Built

LoreDrop is a real-time, location-aware web app where communities drop local knowledge onto a map for others to discover. It's a crowdsourced survival guide that combines community wisdom with AI-generated intelligence.

πŸ›‘οΈ AI Survival Kit (Gemini 3 Flash + Google Search Grounding)

Pan the map to any city in the world. LoreDrop's AI mascot Polo (a paper airplane ✈️) auto-generates a Local Survival Kit containing:

  • Cultural Rules β€” the unwritten social norms (with matching emojis)
  • Tourist Traps β€” scams and overpriced spots to avoid
  • Phrasebook β€” essential local phrases with pronunciation
  • Recent News β€” live safety alerts and noteworthy events, grounded with Google Search

The kit is powered by Gemini 3 Flash with googleSearch tool grounding, so it pulls real-time information β€” not just training data.

πŸ“ Community Lore Drops

Users pin tips to real locations. Each drop is tagged with a category (History, Alert, Fun Fact, Hidden Gem) and appears as a clickable tag on the map β€” styled after our sister app Lens & Lore's neo-brutalist markers. Click any tag to see the full tip in an InfoWindow popup.

πŸ‘₯ Community Tab with Radius Filter

A dedicated sidebar tab shows all community drops within a configurable radius: 500m, 1km, 2km, or 5km. Filter by category, see distance labels, and tap any card to fly the map straight to that pin.

πŸ’¬ Polo AI Chat

Chat with Polo about your surroundings. Polo ingests your map viewport boundaries, nearby community drops, and your GPS location as context β€” then responds using Gemini with Google Search grounding. Ask "What's the best street food near here?" and Polo actually knows where "here" is.

πŸ’Ύ Full Persistence

Everything persists via Zustand + localStorage + Firestore:

  • Chat history survives page refreshes
  • Generated survival kits are cached (no re-generation on revisit)
  • Auth state doesn't flash the landing page
  • Firebase Firestore Database stores pings and insights from all other users.

Demo

Live: loredrop.vercel.app

GitHub: github.com/amaansyed27/loredrop

Code

πŸ—ΊοΈ LoreDrop β€” Crowdsourced Local Survival Kit

Drop lore. Explore locales. Survive anywhere. A real-time, community-powered travel companion with AI-generated survival kits β€” powered by Gemini 3 Flash and Google Search grounding.

React 19 Gemini AI Tailwind CSS Firebase Google Maps TypeScript


🧭 What is LoreDrop?

LoreDrop is a location-aware web app where communities share local knowledge β€” hidden gems, scam warnings, historical facts, and cultural tips β€” all pinned to real places on a map. Think of it as a crowdsourced survival guide for any neighborhood on Earth.

Pan the map to any city, and LoreDrop's AI mascot Polo (a paper airplane) will:

  • πŸ›‘οΈ Auto-generate a Local Survival Kit (cultural rules, tourist traps, phrasebook + live news) grounded with Google Search
  • πŸ’¬ Chat with you about the area using real-time context + community drops
  • πŸ‘₯ Show you Community Tips from other travelers within a configurable radius

✨ Features

Feature Description
πŸ—ΊοΈ Interactive Map Google Maps with reverse geocoding
…

How we Built It

Tech Stack

Layer Technology
Frontend React 19 + TypeScript 5.9 + Vite 7
Styling Tailwind CSS 3.4 (Neo-Brutalism design system)
Maps @vis.gl/react-google-maps + Geocoding API
AI Gemini 3 Flash (@google/genai) + googleSearch tool
Auth & DB Firebase 12 (Authentication + Cloud Firestore)
State Zustand 5 with persist middleware β†’ localStorage
Deploy Vercel

How Gemini Powers LoreDrop

1. Survival Kit Generation (gemini.ts)
We call gemini-3-flash-preview with tools: [{ googleSearch: {} }] enabled. The prompt asks Gemini to search for recent news, safety alerts, and cultural context for the locale. The response is parsed as structured JSON containing cultural rules, tourist traps, a phrasebook, and real-time news β€” all grounded in live Google Search results.

2. Polo Chat (PoloAgent.tsx)
Multi-turn conversation with Gemini using the same googleSearch tool. We inject the user's GPS coordinates, map viewport bounds (North/East/South/West), and all nearby community drops as system context. This means Polo can answer hyper-local questions with real geographic awareness.

3. Reverse Geocoding
As users pan the map, we reverse-geocode the center coordinates via the Google Maps Geocoding API to extract a human-readable locale name (e.g., "Shibuya, Tokyo"). This locale string drives the survival kit generation and lore tagging.

Design Philosophy

Neo-Brutalism Lite β€” inspired by our sister project Lens & Lore. Sharp ink-black borders (#1A1A1A), hard drop shadows, off-white paper background, and a bold yellow/orange/mint palette. Zero gradients, zero glowing effects, zero "AI sparkle" clichΓ©s. Just clean, bold, functional design that feels like a hand-drawn travel journal.

Team

Thanks for checking out LoreDrop! πŸ—ΊοΈβœˆοΈ

Top comments (4)

Collapse
 
maxxmini profile image
MaxxMini

The googleSearch tool grounding is a smart architectural choice here β€” most travel apps either go full-static (guidebooks that age out in weeks) or full-UGC (which needs critical mass to be useful). Blending AI-generated kits with real-time search grounding means LoreDrop is useful from day one, even before community contributions hit density.

Curious about a cold-start edge case: for smaller cities or rural areas where Google Search might return thin results, does the survival kit degrade gracefully? I could see it working beautifully for Bangkok or Tokyo but potentially hallucinating cultural norms for, say, a small town in rural India where search coverage is sparse. Have you considered a confidence indicator on the AI-generated sections?

Also, the Zustand + localStorage persistence is practical, but it creates an interesting data portability question. If I generate survival kits for 10 cities, that local cache becomes genuinely valuable. Any thoughts on optional cloud sync or export? Even a simple JSON export would let power users back up their research before a trip.

The neo-brutalist design language is refreshing β€” travel apps are one of the most visually homogeneous categories out there (every competitor looks like Airbnb). The hand-drawn journal aesthetic actually maps to how travelers think about notes.

Collapse
 
amaansyed27 profile image
Amaan Syed

Hi, thanks for your insights, apart from the local sync the data os being stored on a firestore db so that everyone can see new pings.

Collapse
 
harsh2644 profile image
Harsh

Great concept! Love how you're combining crowdsourcing with AI for real-world impact.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.