← projects

// client project · surf conditions

Paddle Out.

A live web app that shows surf conditions for 34 beaches across the Western Cape, KwaZulu-Natal and the Eastern Cape. Each beach has its own landmark, the sea and sky follow the real swell, wind, tide and sunset, and the people on the sand come and go with the weather.

type
Client project
status
Live
focus
Live data + generative visuals
scope
Design, development, live data
built with
html · css · javascript · open-meteo api · netlify functions

01 / the idea

The idea.

Most surf reports are tables. This one tries to look like the beach. Pick a spot and the page becomes it: the headline, the sea, the sky and the colours all change to match what the water is doing right now.

Every beach is drawn with something a local would recognise. Table Mountain behind Big Bay, the striped lighthouse at Umhlanga, the Hole in the Wall at Coffee Bay, the huts at Muizenberg. Stick figures fill the sand on a sunny day, thin out when the wind picks up and go home when it rains or gets dark.

The beaches are grouped by province, so a surfer in Durban can see the whole coast from Ballito to Scottburgh in one tap and compare it with the Cape or the Eastern Cape.

02 / the build

The build.

A single server function fetches wave height, swell period, wind, water temperature and tide for all 34 beaches in one request, then caches the result for twenty minutes. Visitors never call the data provider directly, so the site stays fast and the API key stays private.

Each beach knows which way it faces, so the scoring treats an offshore wind as clean and an onshore wind as messy. The forecast grid is about 8 km wide, so a sheltered bay and an exposed point can share a forecast point. An exposure factor for each beach keeps sheltered spots smaller than the open coast next door.

The sea is drawn in code on every frame, the sky follows the real sunrise and sunset, and on phones the scene shifts so each landmark stays in view. A three-day chart finds the best window to paddle out, and if the live feed is down the site says so and shows sample data.

// live and in use

34 beaches. Three provinces.

Paddle Out is live and in use. It grew out of an earlier single-beach idea into a full product, and shows how one live data feed can power a site a surf school, a lifesaving club or a coastal tourism business can rely on every day.