Inspiration

NYC has millions of people and endless things to do, but arriving in the city can still feel lonely. Finding a restaurant is easy. Finding someone to go with, starting the conversation, and actually making a plan can be much harder. We wanted to connect people new to NYC with locals who love sharing their corner of the city. A favorite coffee shop, a photo walk, or a game in the park gives two strangers something to look forward to together. That became LinkUp: find your people through the places they love.

What it does

LinkUp connects NYC locals with people new to the city through shared interests and activities, then turns a mutual match into a confirmed hangout. People create a profile and swipe through potential connections. When two people match, the local suggests an activity or shares a personal favorite. The other person can approve it or ask for another option. From there, a Photon-powered iMessage agent handles the coordination through private conversations and polls. It gathers availability, proposes a time that works for both people, and asks each person to confirm the complete plan. Participants can also reschedule, change the activity, or cancel. Instead of leaving a match at “we should hang out sometime,” LinkUp helps answer where, when, and are we both in?

How we built it

We built the mobile app with React Native, Expo, and TypeScript, using animated profile cards, swipe gestures, and clear planning screens. A Node.js backend coordinates profiles, mutual likes, activity choices, availability, and confirmations. Photon Spectrum connects the app to iMessage, where participants respond to native polls in separate conversations. Google Gemini interprets flexible replies, such as “I’m free after class on Thursday” or a local’s suggestion for a custom activity. The backend calculates overlapping availability that fits the activity’s duration. Each confirmation belongs to a specific version of the plan, and the meetup becomes final only when both people approve that same version. AI helps interpret the conversation; recorded decisions determine what happens next.

Challenges we faced

The hardest part was keeping two separate conversations aligned. One person might approve an activity while the other changes their availability. Someone might respond to an old poll after a new plan has already been proposed. We separated planning into explicit stages and tied responses to the relevant participant and planning round. When important details change, previous confirmations are cleared so neither person accidentally agrees to an outdated plan. We also worked through message delivery failures, conflicting time choices, and native poll limitations. A numbered-text fallback keeps the conversation moving when polls are unavailable, while an in-app rehearsal mode lets us demonstrate the planning journey without sending real messages.

Accomplishments we are proud of

We brought discovery and coordination into one connected experience: a mutual swipe, a local recommendation, a shared decision, and a confirmed plan. We’re especially proud that both participants retain a voice. The local contributes neighborhood knowledge, the person new to the city can shape the experience, and neither person’s silence is treated as agreement. Our two-person NYC prototype demonstrates that journey with sample profiles, a curated activity catalog, and support for changes after confirmation.

What we learned

We learned that helping people connect involves more than making a match. A specific invitation gives people something to respond to, and small decisions make planning feel more manageable. We also learned that building a useful AI agent requires careful handling of agreement and state. Understanding a message is only part of the job. The system must also know who responded, what they agreed to, and whether that agreement still applies.

What’s next for LinkUp

We want to test LinkUp with a small campus or neighborhood community and learn what helps people move from matching to meeting. Future improvements include matching by distance and availability, remembering activity preferences, incorporating live venue and weather information, and supporting small group adventures. Before a public launch, we would add verified sign-in, reporting and blocking, stronger privacy controls, and production infrastructure. Our goal is to help people build a relationship with NYC through the people who call it home.

Share this project:

Updates

Submission history