Shoot us some feedback!
Here’s chatgpts breakdown on what is built
The Duune mobile app operates as a sophisticated surf forecasting platform that aggregates and processes data from multiple external APIs to provide comprehensive wave, wind, tide, and environmental conditions for Southern California surf spots. At its core, the app leverages three primary data sources, each serving distinct but complementary roles in delivering accurate surf forecasts.
Spitcast API serves as the foundation for wave height and surf forecasting data, providing detailed spot-specific wave predictions through their endpoints at api.spitcast.com. However, this integration requires careful handling due to a critical API constraint. To work better with local knowledge we modify the wave heights and add human readable information on the projections. There is a lot of differences in perception of wave height in the 3-6 ft range, and everyone inteprets these heights differently so Duune works to help users understand if it’s going to be fun.
Open-Meteo API provides comprehensive meteorological data including wind forecasts, water temperature, and atmospheric conditions through their open-source weather API at api.open-meteo.com. Unlike Spitcast, Open-Meteo accepts both current and future date requests, making it more flexible for forward-looking forecasts. The windService.js processes hourly wind speed and direction data, applying spot-specific corrections and quality thresholds (glassy: 0-5 km/h, light: 5-15 km/h, moderate: 15-20 km/h, strong: >20 km/h) to generate surf-relevant wind conditions. The waterTempService.js uses Open-Meteo's marine API to fetch sea surface temperatures, while the interpolationService.js creates minute-by-minute interpolated data for more granular forecasting accuracy.
NOAA Tides and Currents API (api.tidesandcurrents.noaa.gov) supplies authoritative tide prediction data using station-specific identifiers configured for each surf spot, with Santa Monica (station 9410840) serving as the default fallback. The tideService.js processes hourly tide predictions in Pacific time, converting NOAA's Mean Lower Low Water (MLLW) datum into user-friendly tide descriptions that integrate with surf quality assessments. This tide data is crucial for the app's time-window analysis, helping determine optimal surf sessions by correlating wave height with tide conditions.