Project Info

EXPLR

Devpost

This project did not submit a demo video on Devpost.

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 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

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

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • CSSIn code
  • FastAPIIn code
  • Google GeminiIn code
  • JavaScriptIn code
  • Next.jsIn code
  • PythonIn code
  • ReactIn code
  • SQLIn code
  • SupabaseIn code
  • Tailwind CSSIn code
  • TypeScriptIn code

11 of 11 appear in the indexed code.

AI coding agents

No AI coding agent signals were found in this repository.

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

398 KB

Source files

106

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars