← Back to all projects

Stoop: Co-Founder

2025 - Present

Find your sunny spot. Stoop is an iOS app for outdoor drinking in the East Village and Lower East Side: it tells you which bars have sun on their patio right now, how busy they are, what a beer actually costs, and how long is left on happy hour.

Background

Outdoor drinking is one of the best things about New York and one of the least legible. Whether a patio is in the sun at 6pm depends on the building across the street, not on anything a listing will tell you. Happy hour end times live in a photo of a chalkboard. Prices are rarely published anywhere, and by the time you have walked over, the one table in the sun is gone.

Stoop was built to turn that guesswork into something you can check before you leave the apartment: sun, seat, and price, on one map, in one glance.

Approach

The app is React Native / Expo with a Mapbox GL v11 map on top of Supabase (Postgres + PostGIS for geospatial queries, Edge Functions for the backend jobs), with Zustand for local state and TanStack Query for server state. Three independent data pipelines feed it:

  • Sun math. Every bar is mapped down to individual seating areas with their own geometry and surrounding building heights. Solar position is computed client-side with SunCalc.js, so sun status updates continuously without a round trip and works even on a weak connection.
  • An AI price agent. A nightly job driven by the Claude API reads bar websites, menus, and social posts to keep beer, wine, and cocktail prices and happy hour windows current. Each extracted value is stored with a confidence score, so the app can show a price plainly, hedge it, or withhold it rather than assert something it is unsure of.
  • Crowd polling. Live and forecast busyness comes from the BestTime API, polled on a schedule and cached in Supabase so the app reads from our own database instead of paying a third-party call on every map pan.

On top of that: happy-hour countdowns and deal alerts, favorites, and Apple Sign In, with Sentry for crash reporting and PostHog for product analytics.

Inside the app

Stoop showing a happy hour deal found at a nearby bar
Stoop bar detail with sun status, crowd level, and drink prices
Stoop map of East Village bars with live happy hour markers
Stoop open invite screen for inviting friends to a bar

Impact

  • Shipped to the App Store as a live iOS app covering outdoor bars in the East Village and LES
  • Sun status is resolved per seating area rather than per bar, which is the difference between a useful answer and a coin flip
  • Drink prices stay current without manual upkeep, maintained by an autonomous nightly agent with confidence scoring
  • Crowd data is cached in our own Postgres, keeping third-party API cost flat as usage grows

Technologies Used

React NativeExpoMapbox GL v11SupabasePostgreSQL / PostGISSupabase Edge FunctionsSunCalc.jsClaude APIBestTime APIZustandTanStack QuerySentryPostHog

Key Contributions & Highlights

  • Designed and built the client-side sun engine, including the seating-area and building-height data model in PostGIS
  • Built the nightly Claude-powered price and happy-hour agent, plus the confidence scoring that decides what the app is willing to show
  • Integrated Mapbox GL v11 with live sun, crowd, and deal state rendered together on one map
  • Set up the Supabase backend: schema, PostGIS queries, Edge Functions, Apple Sign In, and favorites
  • Shipped happy-hour countdowns and deal alerts to bring people back at the moment a deal starts
  • Instrumented the app with Sentry and PostHog to find crashes and dead ends before users report them