-
-
Plan an outing: a timed plan from real places, with opening hours, travel times and sunset checked in code. Start it, and it becomes a trip.
-
Trippy: tell it what the car needs, and it finds real places on your route, ranked by Nemotron on Nebius Token Factory.
-
Trippy remembers notes for this trip or every trip, and shows how it decided: which models ran, the tools, places considered and time taken.
-
Ask in English, Hindi or Hinglish. Three real Google places ahead on the route, each with the reason it was picked.
-
Follow up on any place, then add it as a stop. The map previews the extra minutes before you confirm.
Inspiration
A family in Mumbai took an Uber to a famous restaurant. The app said 90 minutes. Dad was already hungry and getting angry. The only way to find a closer option was to open Google Maps, type the route and zoom around looking for restaurants by eye.
The data to fix this existed before the ride was booked. Nothing put it together at the moment the family needed it.
Gemini can search along a route, but only while you navigate in Google Maps yourself. In a cab you are a passenger, and nothing helps you. We wanted one question answered well: "Should we still go there, and if not, where instead?"
What it does
Trippy is an AI decision layer on top of Google Maps data. It is not a navigation app.
You start a trip and type what the car needs, the way you would tell the driver: "dad is vegetarian, something like Domino's within 15 min", "bhai chai break kahan milega?", "tyre punctured, anywhere nearby?". Trippy finds real places along the route, checks live travel times and opening hours, weighs the trade-off for your group and shows the best three on a map, each with a short reason. Follow-ups work ("is it actually famous?"). Add stop previews the route through a place with "+N min". Places open in Google Maps, Uber or WhatsApp.
It keeps the trip: notes ("grandma is with us"), a flight deadline, real stops. The map follows the car. A flight check is measured to the airport, not the hotel. Type "accident" and a 112 button appears at once.
A second mode, Plan an outing, builds a timed plan from real places before you leave ("dinner at Kopitiam Lah at 7 pm in Indiranagar, a ring to buy before that"). Opening hours, travel times and sunset are checked in code.
Judges can try it from anywhere: start a trip and tap Replay a drive. Settings has a toggle, Show how Trippy decided.
How we built it
Models. Three Nemotron 3 models on Nebius Token Factory. Super (reasoning off) reads the request and picks the tool in about 1.5 seconds. Ultra (reasoning off) ranks the real candidates and explains the trade-off. A full answer, with the search and the ranking, takes about 10 seconds. Ultra with reasoning handles planning questions where nobody is waiting. In the outing planner, Nano reads the request and Super writes the reasons. In our day-1 tests Super picked the right tool 6 times in 6 and Nano 3 in 6, and Super invented facts when ranking where Ultra did not.
Agent. The model calls tools (find_stops, place_details, eta_from_here, web_search on Tavily, make_link, remember and a few more). The tools are code. Every suggestion is a real Google result; the model never invents a place. Code writes all state. Where a prompt rule did not hold, we moved it into code: a flight deadline is compared with the arrival in code, a deleted note cannot come back from chat history, minutes from an old search are removed before the model can quote them.
Stack. A PWA (Vite, React, TypeScript) on Cloudflare Pages. A stateless relay on Cloudflare Workers holds the Google, Tavily and Nebius keys, allows only listed models, and enforces per-session and daily caps. Trip, chat and notes live on the phone in IndexedDB. The relay stores and logs nothing.
Challenges we ran into
Confident wrong answers. The model read "flight at 6 am" asked at 6 pm as too soon, quoted minutes from a search 28 minutes old as current, and pointed the Uber button for "Leopold" at another place. Each became a test case and a code fix.
Real roads are not tests. On a four-hour ride from Nashik to Navi Mumbai we asked Trippy 28 questions. The logs showed a stale "ETA +23 min" banner that stayed for over an hour, a flight check measured to the hotel, and "Failed to fetch" shown as a reply in a tunnel. We found a dozen problems and fixed them all.
No background GPS. A PWA follows the car only while it is open, so we keep the screen on during a trip and refresh at once when you return.
Accomplishments that we're proud of
- We compared Trippy with Google Maps and Gemini on the real ride. For tea, Google Maps showed a place behind the car; Trippy's was on the way. For toilets, Google Maps listed places in a radius; Trippy said none were on the route. For "garage", Google Maps showed two-wheeler garages; Trippy found a four-wheeler service centre. Gemini kept no memory between questions. Google Maps shows more map detail than we do.
- 71 test requests in English and Hinglish: 90 of 90 on the first 30 across three routes after fixes, 28 of 30 on the planning set. Ten end-to-end trip flows across Mumbai, Delhi, Bengaluru, Kolkata and Hyderabad in real browsers found 11 and then 12 real problems in two runs on 10 October.
- 13 offline check scripts, including 28 recorded planner searches that must return the same plans as the original Python version.
What we learned
- A prompt line is a request; a code guard is a rule.
- Different jobs need different models, and reasoning only where nobody waits.
- Real use finds what tests do not. Our test cases came from the ride.
- Say what the data cannot tell you. Table waits, rupee prices and washroom cleanliness are not in Google's data, and Trippy says so.
What's next
Built and tested in India first, where in-car apps serve the driver and families negotiate stops on long, slow drives. The design is not tied to India: maps sit behind one provider interface, and the time zone, language and emergency number are settings to change, not a rewrite. Next: The outing planner should hold a stated time ("dinner around 8") and a diet as fixed rules, and the ranker should weigh who is in the car from the request itself, not only from saved notes. A native wrap (Capacitor) for background tracking and alerts. Push-to-talk voice. The recorded real trace as the replay. An MCP server from the same tool code. Fuel, EV charging and attractions for road trips and tourists.
Built With
- cloudflare-pages
- cloudflare-workers
- durable-objects
- google-maps
- google-places
- google-routes-api
- indexeddb
- nebius-token-factory
- node.js
- nvidia-nemotron
- pwa
- react
- tavily
- typescript
- vite
Log in or sign up for Devpost to join the conversation.