Inspiration
We started with a simple thought: being close to someone does not always mean spending meaningful time with them. We see friends between classes, sit next to coworkers during breaks, and still end up scrolling on our phones.
We wanted to give people a small reason to do something together. Games already do this well through shared challenges and rewards, so we asked ourselves: what if those challenges happened in real life? That became QuestGO.
What it does
QuestGO turns everyday encounters into shared quests. When two users’ ESP32 devices get close to each other, both receive a notification inviting them to do an activity together.
Normal Mode suggests outdoor activities, with both free and paid options. Work Mode offers shorter, lighter activities that fit into a quick break. Both users confirm when they finish a quest, and streaks encourage them to keep making time for each other.
The idea is simple: use technology to start an interaction that continues beyond the screen.
How we built it
We combined ESP32 hardware with a Progressive Web App built using Next.js, TypeScript, and Tailwind CSS. The devices provide the proximity trigger, while the app handles the shared quest experience.
We used Gemini API for activity suggestions and Tiger Data PostgreSQL to store user information, device IDs, preferences, and streaks. For sign-in, we used Auth.js with Google and Meta/Facebook OAuth. Our hosting and compute platform is NorthMark Compute & Cloud.
A big part of the work was connecting these pieces so that a physical encounter could lead to an activity for both users.
Challenges we ran into
One of our biggest challenges was the ESP32’s internet connection. In our iPhone setup, we could not stay connected to Wi-Fi while also sharing a personal hotspot with the ESP32. We had to switch the phone to cellular data to provide that connection.
This made us think more carefully about how people would use QuestGO outside our demo. In the future, pairing the ESP32 with a cellular module could give the device its own internet connection without depending on a phone’s hotspot.
Accomplishments that we're proud of
We’re proud of bringing hardware, AI, and a web app together around an idea we care about: helping people spend more time together.
We also kept the experience simple. Users do not need to plan a big event or organize an entire afternoon. A quick break or an ordinary encounter can be enough to start a shared adventure.
What we learned
We learned that building a connected device means thinking beyond the code. Something as ordinary as how a phone shares its internet connection can affect the whole experience.
We also gained experience connecting embedded hardware with authentication, a database, and AI-powered features. Most of all, we learned to think about the moment someone would actually use our project: where they are, how much time they have, and whether the suggestion feels worth doing.
What's next for QuestGO
We want to support more than two devices so groups of friends can take on quests together. We also want to add a community page where people can post activities tied to specific locations.
On the hardware side, we want to explore cellular connectivity to make the devices less dependent on phones. On the software side, we want to make quests better suited to people’s preferences and available time.
Our goal is to make QuestGO something people reach for when they want a reason to get out, connect, and make an ordinary day a little more memorable.
Built With
- claude
- esp32
- next.js


