Inspiration:
As travelers ourselves, travelling should feel exciting, but unfamiliar places and language barriers can make these simple moments feel stressful. We built Ryoko to help travelers to feel more confident in these moments bringing discovery, communcation, and personalized guidance all in one travel app. Whether it is ordering a drink, asking a question, or deciding what to do, it can make travelers feel less stressful and solely focus on the travelling experience.
What it does:
Ryoko brings together three main experiences:
- Map: explore nearby places and personalized recommendations powered by Mimo; preview destinations, location-based preset translations, and cultural tips for selected locations.
- Live Translation: communicate through two-way voice translation instantly
- Mimo (AI chatbot): Mimo uses your location, time, and personal preferences to help users answer questions, discover places, and plan trips
How we built it:
- We built Ryoko with SwiftUI and MapKit to create a native iPhone experience
- Connected with Soniox for live speech translation
- Used Node.js backend with Hono to Mimo
- Shared JSON schemas and API contracts to validate request and response structures between the Swift client and server
- Integrated Gemini API, ElevenLabs, Tiger Data, Snowflake API
- Snowflake: travel knowledge. We loaded 735 sections of Wikivoyage (Tokyo, Shanghai, Japan, China and their cuisines) into Snowflake, with Cortex Search on top. When you ask about customs, tipping, paying or how to order, Mimo searches the guides and answers in its own words, with the source linked. Place cards also pull a few guide excerpts before they're written, so their tips can cite where they come from.
- Tiger Data: memory of your trip. The app records what you actually do: places you confirm, phrases you show or play, and things you type in Translate. Tiger stores each one in a Timescale hypertable with a vector embedding. Before every Mimo message, it returns your latest moments plus the past ones most like your question. Mimo chats are also saved there, so a conversation survives a server restart.
Challenges we faced:
- Connecting AI recommendations to real places
- Making personalization visible
- Designing translation for two people sharing one phone
- Handling dietary information carefully
- Choosing what to finsih under time pressure
- Managing all APIs to work simultaneously
What we learned:
- User personalization context makes AI more useful
- Integrate user interactions in our app
- Work collaboratively under time constraint
- Develop Swift apps on IOS devices
Log in or sign up for Devpost to join the conversation.