-
-
A chance reply to a travel photo becomes the beginning of an online relationship.
-
here’s Feed reveals the work, friendships, and unfinished stories that existed before the user.
-
A living map connects here’s photographs, work, and personal history across cities.
-
Couple-only Memories remain locked until both people are ready to make the relationship real.
-
Fish Audio voice discovery loads Wang_Voice directly from the configured account.
Inspiration
Most AI companion apps begin with a blank character who immediately revolves around the user. I wanted to try the opposite: what if the person on the other side already had work, friends, family, old photographs, difficult days, and plans that had nothing to do with you?
That became here Travel.
The user first meets here, a Singapore-based travel photographer and VLOG creator, after replying to one of her photos online. They have never met in person. At the beginning, they are closer than ordinary online friends, but neither has said what the relationship means.
What it does
here Travel presents that relationship through the familiar surfaces of a social app:
- Chat is where the relationship develops through everyday conversation.
- Feed shows the work and life here had before meeting the user.
- Map connects her photographs and stories to real places.
- Moments contains more immediate and private updates.
- Memories is reserved for shared history and remains partly locked until the relationship actually changes.
There are no affection meters or character sheets. Progress appears through ordinary social behavior: a more personal message, a private photo, a remembered detail, or something here finally decides to share.
The app supports English and Simplified Chinese, account-based model discovery, secure Keychain storage, multiple speech providers, and internal image and video capabilities. Media generation belongs to here’s life as a photographer and creator; it is not exposed as a generic generation tool for the user.
How I built it
The iOS app is built with SwiftUI, SwiftData, MapKit, and Keychain for iOS 17+. Conversation history and relationship state are local-first. Provider settings are configured inside the app, and supported model or voice IDs are loaded from the user’s configured account instead of being hard-coded.
I developed the project in Codex with GPT-5.6. The process was highly iterative: I would build a feature, run it in the simulator, and then question whether it felt like a real social interaction. That process removed several early ideas that felt artificial, including exposition-heavy messages, invented trips between two people who had never met, and duplicated content across Feed and Moments.
Challenges
The hardest part was continuity. A believable character cannot casually contradict her own history or invent an in-person memory with someone she has only met online.
Another challenge was giving each social surface a distinct purpose. Feed, Moments, Map, VLOGs, and Memories initially risked becoming different views of the same content. They became more convincing once each one represented a different level of context and intimacy.
Provider integration also required a consistent interface across different model, voice, image, and video APIs while keeping credentials out of the social experience.
What I learned
Believability comes less from adding more AI features and more from giving those features boundaries. here feels more real when she cannot instantly become whatever the user asks for, when she has history the user did not create, and when some parts of the relationship take time to unlock.
What’s next
I want to expand the relationship stages, add more natural long-term memory, deepen here’s VLOG workflow, and test how the experience changes when the first real-world meeting finally becomes possible.
Log in or sign up for Devpost to join the conversation.