Inspiration
Valentine’s Day made it obvious to us that dating apps are everywhere, but a true connection feels rare. We swipe, swipe, swipe like we were shopping on Amazon. This practice reduces people to snapshots, and chatting often goes nowhere. We realized the core issue wasn’t matching, but mainly how 'identity' is defined. Most apps ask users to describe themselves or to upload a hot picture of themselves, but identity isn’t a list of traits. It’s revealed through choices, actions, and follow-through. Then we thought, what if online dating were, instead of letting people list who they are, to actually prove it and own it. And with that, LockedIn was born.
What it does
LockedIn is a dating experience that replaces swiping with identity discovery. When two users match, they don’t chat or exchange photos. Instead, they enter a shared quest made up of AI-generated, time-limited challenges tailored to their values, interests, and location. Each completed challenge reveals a meaningful identity detail about the other person and advances a shared progress bar. Once all challenges are completed, the app unlocks a real-world date spot and time. After the date, LockedIn compiles shared moments into a memory capsule, turning interactions into something intentional and memorable rather than disposable.
How we built it
LockedIn is built on a Next.js and TypeScript foundation to ensure a robust, type-safe, and responsive user experience, while MongoDB handles the real-time state management for quests and challenges. The application leverages the Google Gemini API to power its personalized core, dynamically generating unique quests, compatibility insights, and date ideas based on user interactions. We enhanced the user interface with Tailwind CSS and custom pixel-art aesthetics, implementing performant features like client-side image compression and lazy loading to maintain a smooth, high-speed experience on both mobile and desktop.
Challenges we ran into
Our biggest challenge was designing a system that felt deep without feeling overwhelming. Translating abstract concepts like identity and growth into short, engaging challenges required careful balance. Technically, aligning real-time progress, AI-generated content, and time-limited interactions while keeping the experience smooth was complex. We also had to ensure the app encouraged vulnerability without pressure, which influenced everything from challenge design to UI pacing.
Accomplishments that we're proud of
We’re most proud of creating a dating model that feels genuinely different. LockedIn doesn’t rely on profiles, photos, or endless chat; it creates momentum through action. The idea of matching identity trajectories instead of static traits sets it apart, and seeing the system turn small behaviours into meaningful insights was incredibly rewarding. We also built a polished, end-to-end experience within a hackathon timeframe that feels intentional, emotional, and technically sound.
What we learned
We learned that users don’t need more options; they need better structure. When you remove swiping and force intention, interactions become more honest and engaging. On the technical side, we learned how powerful AI can be when it observes behaviour instead of generating surface-level content. Most importantly, we learned that designing around identity requires empathy as much as code.
What's next for LockedIn
Next, we want to expand LockedIn into long-term identity journeys, where compatibility evolves over weeks instead of just one quest. We plan to improve behavioural analysis, add richer identity visualizations, and explore how this model could apply beyond dating, friendships, mentorships, and community building. LockedIn isn’t just about dating. It’s about designing technology that respects how people actually grow and connect. We also hope to expand to a Mobile app, an interactive map, and more features.
Built With
- affinitypublisher
- figma
- gemini-ai-api
- google-cloud
- jwt
- mongodb
- next.js
- react
- resend
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.