-
Upon initially making an account, the user is prompted to enter their location and their preferences for activity type
-
They will then be given a quest based on their interests and area, which they have until the end of the day to complete
-
The quest will show up as completed at this point, and a new one will be given the next day
-
An example of another quest in Berkeley.
-
Another example of another quest in Berkeley.
-
Note how all the quests are within the users interests of hiking, books, food, outdoors and music.
-
Add friends to keep up with their posts and quests!
-
Live Map of you and your friend's completed quests. Check out what they are up to and feel encouraged to explore the area more.
-
You can view your friends experiences on the map.
-
Or on the home page through their posts (automatically created when a quest is completed).
-
Check the leaderboards to see how you compare with your friends! This hopefully encourages you to spend more time exploring the real world!
Inspiration
We were sitting in the Bay Area with free time and zero motivation. Even though there was stuff to do, nothing felt exciting. Most apps give you the same list of restaurants and landmarks with no context or personalization. We wanted something that would take the pressure off decision-making and make going out feel a little more like a mission. Otherwise, we would just spend time scrolling on our phones, wasting our time. That’s how EXPLR started, as an app that makes everyday plans feel like quests and to bring adults out to explore the real world.
What it does
EXPLR gives you a daily, AI-generated quest based on your location, past activities, and personal preferences. These quests can be anything from trying a new cafe to checking out a nearby trail. You complete the quest by uploading a photo, and you can see your friends’ completed quests too. You build streaks, give feedback, and discover new places together. It considers whether you prefer museums to hiking, restaurants to camping, etc so it is part discovery tool, part daily motivator, and part social feed. Theres a leaderboard to build a competitive spirit amongst your friends to see who can explore the most days too.
How we built it
- Frontend: Built with Next.js, React, and TypeScript. Styled using Tailwind CSS and shadcn/ui.
- Backend & Database: Supabase handles PostgreSQL, authentication, and image storage. Supabase RLS policies enforce security.
- AI & Geolocation: Gemini AI generates quests based on user context. Google Maps API confirms the location is real and plots points on the global map.
- State Management: A custom global store keeps user quests in sync across components without re-fetching.
Challenges we ran into
- Authentication on the server: Supabase’s client didn’t carry user context server-side, causing row-level security issues. Fixed using a secure admin client with a
SERVICE_ROLE_KEY. - Duplicate AI results: Gemini occasionally repeated quest suggestions. We fixed it by passing full user quest history in the prompt and logging prompt data for debugging.
- Efficient social feed queries: We had to restructure our database joins to cleanly pull user, friend, and quest data together.
Accomplishments that we're proud of
We got a full AI-powered experience working from end to end, including user login, quest generation, image uploads, and a live social feed. And most importantly, it actually made us want to explore again. We plan to deploy this webapp after the hackathon and use it amongst our friends back at the University of Michigan.
What we learned
- How to use Supabase RLS and secure backend clients effectively
- How to debug AI prompt pipelines by logging intermediate data
- How to organize user-to-user relationships and content in relational databases
What's next for EXPLR
- Add IOS and Android full functionality
- Let users reroll quests or fine-tune preferences
- Build out ELO-style quest scoring and improve the leaderboard
- Add reactions, comments, and real-time friend updates
- Eventually partner with local businesses for sponsored quests
Built With
- ai
- api
- backend
- frontend
- fullstack
- gemini
- github
- google-maps
- javascript
- maps
- sql
- supabase
- typescript
- vscode
Log in or sign up for Devpost to join the conversation.