Surf’s UP — Lake Michigan Surf Forecasting & Coordination
A web app that aggregates surf conditions across spots on the Western shore of Lake Michigan and helps users coordinate where to go when conditions are firing.
At a Glance
Type: Side project (Founder / Product + Engineering)
Users: Lake Michigan surfers (me + friends)
Core value: Faster decisions + easier coordination on surf days
Key features: Spot dashboard, aggregated data, notes, group check-ins
The Problem
When the surf is up, lake surfers bounce between multiple websites and applications to compare conditions across spots looking at weather, wind, waves, and live camera feeds. Then they text/call each other repeatedly to decide where and when to go shred.
What I Built
Surf’s UP brings together everything needed to make a “where should we surf?” decision in one place.
Aggregated Spot Dashboard
View multiple surf spots in one place
Compare conditions quickly without hopping across websites
Pull in key data sources (forecast + visual context)
Camera Feeds + Visual Context
Quick access to live cams at each spot (if available)
Faster reality-check before driving
Spot Notes
Add quick notes like “was firing at 7am” or “closed out / too much wind”
Capture local knowledge and share it with the group
Coordination / Check-In
Check in to a spot with an intended time
See where everyone plans to go at a glance
Reduce the constant texting/calling loop
Outcome
The app reduces the time and friction it takes to:
scan conditions across spots,
choose the best option,
and coordinate quickly with the crew.
It turns a chaotic workflow into a single shared “source of truth” for surf days.
Product Thinking & Tradeoffs
Speed > perfection: Prioritized fast scanning and decision-making over deep analytics.
Single page by design: Aggregation beats navigation when users are comparing options.
Lightweight coordination: “Check-in” is intentionally simple. Just enough to align the group without building a full social app.
Tools
Figma · Git · Render · FastAPI · Uvicorn
Python · JS · HTML · CSS · SQL
App Screenshots
Screens and examples shown are representative and may include simulated data.