Inspiration
Finding a good workspace in Metro Manila is harder than it should be. Students rotate between overcrowded libraries and noisy cafes. Remote workers burn data testing WiFi speeds at random coffee shops. There's no single source of truth that answers: "Where can I actually get work done right now, near me, that fits what I need?" We built Haven to solve that — a map-first tool that matches people to workspaces based on their intent, not just proximity.
What it does
Haven is a Progressive Web App that helps users discover, evaluate, and navigate to community-rated workspaces across Metro Manila. Users choose an intent mode — Study, Work, or Chill — and the app surfaces matching locations with real-time multi-modal route estimates (drive, motorcycle, bike, walk), safety scores, community reviews, and live GPS trip tracking. It works offline after first load, installs to home screens, and runs on any device with a browser.
How we built it
We built Haven end-to-end using OpenAI Codex as the primary development environment, with GPT-5.6 for architectural decisions and debugging. The stack is React Native (Expo Router) targeting web and native, Supabase for auth, Postgres, and Edge Functions, MapLibre GL for vector map rendering, and NativeWind/Tailwind for styling. Route estimation runs server-side through a Supabase Edge Function that calls Geoapify's routing API — keeping the API key off the client. Workspace data is ingested from OpenStreetMap via a Python pipeline. The entire app was built iteratively through AI-assisted development — from schema design to accessibility testing — with human oversight on product direction and UX.
Challenges we ran into
- Cross-platform map rendering: getting MapLibre to behave consistently across web and React Native required platform-specific implementations and careful GeoJSON handling.
- CORS and Edge Function auth: the route-estimates function needed to authenticate browser requests using publishable keys while rejecting unauthorized origins — getting this right without leaking the Geoapify secret took multiple iterations.
- Offline-first PWA: coordinating Workbox precaching with Expo's static export pipeline and ensuring the service worker didn't cache stale API responses required custom configuration.
- Metro Manila data quality: OpenStreetMap coverage in NCR is inconsistent — we built deduplication and validation logic into the ingestion pipeline to produce clean workspace records.
Accomplishments that we're proud of
- A fully functional, installable PWA built in a hackathon timeframe — from empty repo to deployed production app.
- Real-time multi-modal route estimates with live GPS tracking and automatic rerouting when you go off-path.
- 64 passing tests (unit + component) and Playwright e2e tests with axe-core accessibility assertions.
- Zero hardcoded secrets in the client bundle — proper separation between browser-safe keys and server-side credentials.
- The entire application was built with AI-assisted engineering, demonstrating that Codex can handle complex, multi-file, full-stack development when guided by clear product intent.
What we learned
- Codex is remarkably effective at holding context across a full-stack project — database schema, Edge Functions, React components, and test suites — and producing coherent implementations that work together.
- The biggest productivity multiplier wasn't code generation speed, it was the ability to iterate on architecture decisions conversationally before committing to implementation.
- PWA deployment has surprising edge cases around service worker scope, manifest validation, and Digital Asset Links for TWA packaging that require methodical verification.
- Shipping a real product with AI is less about prompting and more about knowing what to build — the AI handles the how, you still own the what and why.
What's next for Haven
- Live community contributions: let users submit WiFi speed tests, noise level readings, and outlet counts directly from the app.
- Push notifications: alert users when a favorited workspace is less crowded than usual or has updated hours.
- Transit schedule integration: replace approximated transit routing with real EDSA/MRT/bus schedule data.
- Expanded coverage: extend beyond NCR to Cebu, Davao, and other Philippine metro areas.
- Native app store release: package via PWABuilder for Google Play and publish iOS builds through EAS.
Built With
- codex
- openai
- postgresql
- python
- react-native
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.