
WanderEye
An AI travel guide shipped to App Store and Google Play. Landmark recognition, on-demand audio guides, an AI trip planner, and a monetisation stack built around RevenueCat. Reached 100+ users across 9 countries.
What this is
WanderEye is a mobile travel guide for iOS and Android. The core idea was simple: point your camera at something and find out what it is, with an audio guide you can actually listen to. From there it grew into a fuller product with an AI trip planner, a personal travel map, daily challenges, and a subscription model. It shipped to both stores and reached 100+ users across 9 countries. I eventually wound it down to focus on other projects.
Landmark recognition and audio guides
The camera tab is the heart of the app. When the user takes a photo, the app captures GPS coordinates alongside the image and sends both to a backend pipeline. A computer vision model identifies the landmark from the image; an enrichment step layers in venue data (name, address, category) from its location; a language model then writes a short audio guide script from that combined context and converts it to speech. The result is stored and opened in a detail screen with an audio player, a map showing the landmark's location, and an option to share. The entire chain runs on demand, there is no pre-built database of guides. How many scans a user can run per month is gated by their subscription tier: 3 on the free plan, 75 on weekly, 2000 on annual.
AI trip planner
The travel plan generator is a multi-step wizard where the user sets a destination, duration, budget level, interests (nature, history, food, etc.), travel style, and activity level. That input feeds a backend pipeline that runs several sequential steps: destination validation and normalisation (the AI checks whether the input is a real place and returns a canonical name); an overview of the destination to give context for the itinerary; a duration analysis that assesses whether the requested length is shorter, longer, or optimal for that specific place and explains why; and finally the full itinerary, day-by-day activities typed as Nature, History, Food, Shopping, Cultural, or Adventure, with travel times, highlights, hidden gems, and practical tips. Generated plans are cached against the destination, duration, and language, so repeat requests for the same place do not trigger new AI calls. API cost is tracked per request, which helped me see where the spend was concentrated.
Explore tab and gamification
Every landmark a user scans is saved with its country code and city. The Explore tab reads that history and renders a world map with visited countries highlighted, plus counters for total scans, countries, and cities. A circular progress indicator shows what percentage of the world's 195 countries they have visited, with milestone goals (10, 25, 50 countries) as nudges to keep scanning. The tab also surfaces a daily travel quiz, a question about a destination or landmark, answered once per day. Correct answers extend a streak that resets if you miss a day. It is a lightweight retention mechanic, but it gave free users a reason to open the app on days they were not travelling.
Monetisation and the partner dashboard
Subscriptions run through RevenueCat, which handles purchase validation and entitlement state across iOS and Android without me managing receipts. There are three tiers, Free, Weekly, and Annual, with scan and travel plan limits enforced server-side in each Edge Function, not just on the client. There is also a referral layer: users who invite others earn scan and plan credits, and successful referrals can trigger a PREMIUM_TRIAL entitlement for the new user. Separately, the app had a partner programme for travel businesses who wanted to refer users in exchange for commission. That runs through a standalone Next.js partner dashboard: partners authenticate with a JWT, and the dashboard shows their total conversions (annual and weekly plan splits), EUR commission (paid and pending), monthly charts, and a paginated conversion history. The charts use Recharts. It is a small but real B2B layer that would have been the growth channel if the product had continued.
What building this taught me
Mobile development is a different discipline from web. Navigation handles things a web router does for free, back stack management, modal stacking, focus effects on tabs, and it interacts with native APIs in ways that require actual device testing to debug. Audio playback on iOS and Android behaves differently; keeping the screen awake during a guide is a separate concern from playing audio; permissions for camera and location each have their own request-and-graceful-degradation flow. Running backend logic in serverless edge functions rather than a Node API meant some patterns did not transfer directly. RevenueCat simplified cross-platform subscription state considerably, but the integration still required understanding how App Store and Play Store receipts differ. The most important thing the project taught me was not technical, it was product scope. I added features that were genuinely interesting to build (daily challenges, partner dashboard, referrals) that did not compound into meaningful growth because the core loop, scan a landmark, had a ceiling as a solo-distributed app.
Up Next
AI workflow
SignalForge
Type
Mobile product
Built
Feb 2025 – Jan 2026
Stack