Inspiration
Some of the places people care about most are also places with no names. A quiet corner, a casual meetup point, (or even where you parked your car) may look insignificant on a normal map, but they can still be meaningful, useful, and worth returning to. Many of these places are not destinations people set out to find. They are discovered while wandering, exploring a neighbourhood, or taking an unfamiliar route. Those moments of spontaneous discovery are often what make travelling on foot enjoyable, yet they can be difficult to revisit later. We wanted to build something that makes it easier both to find interesting places nearby and to remember the ones that matter to you. That idea became Waypoint: an app that treats location as something both playful and personal. It helps users discover nearby public spots, navigate there through a simple compass-style experience, save their own meaningful locations, and share those places with friends or the public. Instead of focusing only on major landmarks or traditional map search, Waypoint is built around the spots that make our everyday experiences.
What it does
Waypoint is a mobile-first location web app that lets users:
- save their current GPS position as a named spot
- navigate back to saved or shared spots using a compass-style finder
- choose whether a saved spot is private or public
- categorize locations
- add friends and share locations directly with them
- discover nearby public spots shared by the community
- upvote or downvote public spots
The app is designed to feel lightweight and social, with a focus on personal landmarks and hidden gems.
How we built it
We built Waypoint with a simple three-layer architecture:
- Frontend: EJS templates, vanilla JavaScript, and CSS
- Backend: Node.js with Express
- Database and Auth: Supabase Auth and Supabase Postgres
The frontend handles the mobile UI, location saving, compass mode, search, and sharing interactions. The backend exposes routes for authentication, locations, voting, and friend management. Supabase handles user accounts and persistent storage.
We also used browser APIs for:
- Geolocation to get the user's position
- Device Orientation to drive the compass experience on supported mobile devices
Public location suggestions are generated by combining distance filters with simple community voting signals.
Challenges we ran into
One challenge was mobile browser behavior, especially around GPS and compass permissions. Localhost worked for desktop development, but real mobile testing introduced HTTPS requirements and device-specific sensor permission issues.
Another challenge was Supabase auth and schema consistency. We struggled with auth flow, profiles table, row-level policies, and seeded data so that registration, login, voting, and public discovery all behaved correctly.
We also spent a lot of time improving the frontend UX. Several features worked technically but felt messy in practice, especially the account area, share flow, and saved-location controls. A big part of the project became simplifying and polishing those interactions so the app felt more cohesive on mobile.
Accomplishments that we're proud of
We are proud that Waypoint grew from the raw idea of a "pinned location" saver to became a small social discovery app with:
- a custom compass navigation flow
- public and private location modes
- friend-based sharing
- community discovery with votes
What we learned
We learned a lot about building location-based products for the web, especially the gap between "works locally" and "works on real phones." We also learned how much product quality depends on small UX decisions.
On the technical side, we learned more about:
- structuring an Express + Supabase app
- handling auth-linked profile data correctly
- designing for mobile browser limitations
- using seeded data and migration scripts to make testing easier
On the product side, we learned that discovery feels better when it includes a human layer, such as who shared a place or who made it public.
What's next for Waypoint
Next, we would like to:
- make public spot seeding and curation easier
- add richer location metadata such as notes, images, and tags
- improve ranking and recommendation quality
- add better moderation and trust signals for public spots
Built With
- css
- ejs
- express.js
- javascript
- node.js
- nodemon
- render
- supabase
- vite
Log in or sign up for Devpost to join the conversation.