Back to gallery

iOS Surf
Forecasting App

Primo Surf Forecasts

For The Average Joe, Not Traveling Pro

Primo tells San Diego surfers where to paddle out, and when. Built solo, end to end.

Audience
Surfers across
San Diego County
Platforms
iOS
Web
Stats
77 surf breaks
40,000+ predictions daily
Distribution
Apple App Store
4.1 stars

My Role

Founder

Design

Engineering

Go to market

  • Website
  • Apple App Store
  • User acquisition & retention
  • Analytics & monitoring

Product Design

The result of countless conversations with average San Diego surfers

I listened, and learned a lot. Including that people are busy with life and want to squeeze in a session whenever they can. And they use multiple apps and websites to check the surf and figure out where it’s best to paddle out today and over the next few days. Primo is built for them, the average Joe.

The Blacks Beach forecast in Primo, rated Fair to Good at four to five feet, with an hour by hour row for the day, dials reading wind, waves and current, and the swell readings beneath them.

Break Detail

Bodhi, our resident surf sherpa, gives the call right off the top. Followed by a very clean, simple, easy readout of the conditions. With all of the hard data available under the hood.

Primo's water quality map south of San Diego. Green markers mark clean sample sites, and a red panel warns of an extreme advisory and a high risk level at the Tijuana Slough National Wildlife Refuge.

Beach Water Quality

Check if the water’s clean before getting wet. We use CA state official water sample data to rate quality, so San Diego surfers know what they’re getting into. Primo is the first surf report app to provide water quality reports.

Primo's lineup view, a ranked list of nearby breaks. Pacific Beach Drive, Crystal Pier and Diamond Street each carry a Fair rating and a wave height, under a row of the day's best shots.

The Lineup

All the favorite breaks at a glance, in order of distance from your location. Surfers can see what favs are working closest to them and spend less time scrolling and more time paddling.

A close view of the wind, waves and current panel, reading seven miles per hour of wind, waves of four to five feet, and a current of nought point seven miles per hour.

Ocean Currents

Primo’s ocean current data helps surfers understand before jumping in if water conditions are gnarly, or no worries. A critical piece of intel that no one else in the market offers.

Geospatial UX

Primo covers approximately 70 miles of San Diego coastline and 77 surf breaks (more breaks across San Diego County than any other app). Data accuracy, ease-of-use, and responsiveness all play critical roles in providing surfers with immediate intel they can rely on.

Primo's map of the San Diego County coast, with a marker on each surf break carrying its current wave height.

Map

The view most surfers use to figure out where it’s working. And the two most critical factors are wave height and surf conditions. Primo’s map was designed to provide the most impactful data. Giving surfers only what they need in the moment. Adding additional value, surfers can switch to beach water quality station reports with a single tap.

Primo's map zoomed to La Jolla, a colored marker on each break carrying its wave height. One marker is open, reading Blacks Beach, Fair to Good, five to six feet.

Map Markers

Tapping on a location discloses the break name along with size and conditions in higher fidelity. If there’s a water quality station within a 1/2 mile radius of the break, that station’s rating also displays.

Primo's map around La Jolla, the surfer's own position shown as a blue dot among the break markers.

Location Marker

The surfer’s own position can also display on the map. Helping them get oriented and check distances between the closest breaks. Two one-of-a-kind features in Primo include using a surfer’s location to sort their favorites list by distance (Lineup tab). And 1-tap driving directions (break detail screen) through Apple Maps.

Primo's search open over the map, the letter B typed, suggesting Tabletops in Encinitas and Cardiff and Blacks Beach in La Jolla.

Search

Not every surfer needs a map. Some already know the break and just want the forecast. So Primo has search built right into the map. Two-character search terms generate results wicked fast.

Data Pipelines

Primo uses best-in-class data sources to fuel its proprietary prediction models for Wave Energy, Wave Height, Surf Conditions, and Beach Water Quality.

Weather, tide, and astronomy API calls execute on a scheduled cadence. The ingestion layer performs format conversions and normalization for use as display data and as the data source for the prediction models. Break-specific physics parameters and characteristics are critical for model calibration and tuning.

A diagram of Primo's data flow. Weather, tide and astronomy feed an ingestion and normalization step, then a daily prediction run, which produces the forecast shown on a phone. A separate surf break physics layer feeds the models alongside the daily flow.

Prediction Modeling

Surf forecasting involves predicting weather and marine conditions, phenomena that are inherently unpredictable. So every forecast carries some margin of confidence. Primo mitigates that margin using break-specific calibration based on a trajectory of parameters describing beach features above and below the surface. On top of that sits an observational-based tuning layer. Enabling manual calibration overrides across multiple parameters per break.

App Store reviews mention forecasts as being “super accurate,” and “way better than Surfline (competitor).”

Wave Energy
Energy transferred when a wave breaks on shore. Measured in kilojoules (kJ).
Wave Height
How tall the waves are, measured at the face.
Surf Conditions
Wave shape and water surface quality.
Beach Water Quality
Pollution level safety.

Website

The www.primo.surf website is the top of marketing funnel. Designed to deliver instant value to visitors at no cost with Bodhi’s current recommendations. Maximize search engine rankings through pre-rendered HTML and Search Console optimization. And directing visitors to Primo’s Apple App Store page, so they may download the iOS app for free.

The full primo.surf home page in a browser. A San Diego Surf Forecasts hero beside a live reading for Pacific Beach Drive, then a ranked list of the day's best breaks, a reader quote, a beach water quality table, and links out to the map, break search and board guide.

Homepage

The page answers before it asks. Today’s best breaks are ranked on arrival, so the value lands immediately.

The full Birdrock break page on primo.surf, giving the break type, who it suits, board recommendations, a map with wind, wave and current dials, an hour by hour row, wave energy in kilojoules, the tide curve, weather and sun times, and nearby breaks in La Jolla.

Break Detail Page

A true taste of Primo, minus the ability to favorite breaks, and only forecasts for the current day. Enough to provide value, and incentivize app download. These pages are search engine gold with rich per-break data, optimized metadata and URLs, and pre-rendered HTML.

The Surfboard Guide on primo.surf, filtered to Beginner, recommending a mid-length and a longboard with a note on why those boards suit.

Surfboard Guide

A foundational tool to help surfers identify their skill level, understand how different surfboard shapes perform, and which board(s) are best suited for them. This type of sought after information also helps boost search engine indexing and ranking.

Outcome

Actively covering 77 surf breaks across San Diego County
Shipped to the iOS App Store in March 2026
4.1 App Store rating
Marketing website live at www.primo.surf, optimized for visibility, acquisition, and conversion
Fully automated data pipeline, generating 40k+ predictions daily
Designed, developed, and operated end-to-end by myself
GalleryNext projectClinical AI Agent, Scholars in Medicine