Haakgat

About Spot
Icon

Sports

Icon

Best season

  • November
  • -
  • March
Icon

Level of riding

  • advanced-level
Icon

Kite surf styles

  • Freeride
  • Big air
  • Wave riding
Icon

Windsurf styles

  • Freeride
  • Wave riding
Icon

Wingfoil styles

  • Freeride

Haakgat, located just outside Cape Town, is the ultimate spot for you advanced wave riders looking to test your skills in some powerful conditions. Known for its strong, fast-breaking waves, it’s perfect for kitesurfing, wingfoiling, and windsurfing—especially if you’re all about wave riding.

This spot is super popular among serious athletes, offering challenging yet thrilling waves that work best during peak wind season. Just a heads-up, though: Haakgat isn’t suitable for beginners due to its intense conditions, but if you’re looking for some of the best wave riding opportunities in the region, this is where you want to be!

Information

Water conditions

Wave break

Water temperature

Best tide for riding

Bodywear

Staging Area

Traffic

Schools nearby

Dangers zones

Access to the spot

Average wind speed

Wind type

Wind working direction

Riding directions

Stats

Number Windy Days per Month

  • Light wind (11+ knots)
  • Moderate wind (17+ knots)
  • Strong wind (22+ knots)
  • Very strong (28+ knots)

Popular Destinations

WHAT WE DO

At outriderx, we deliver unforgettable water adventures for everyone. Whether you’re new to the waves or a seasoned pro, we connect you with the thrill of wind and water. Join us for personal growth and become part of a vibrant adventure-loving community.

// var windData = []; // // Morris.Bar({ // element: 'bar-chart', // data: windData, // xkey: 'y', // ykeys: ['a', 'b', 'c', 'd'], // labels: ['Strong Wind A', 'Total Outcome B', 'C', 'D'], // fillOpacity: 0.6, // hideHover: 'auto', // resize: true, // barSizeRatio: 0.6, // barColors: ['#adcefd', '#8bbdf6', '#66abf9', '#2c9aff'], // smooth: false, // pointFillColors: ['#ffffff'], // pointStrokeColors: ['black'], // hoverCallback: function (index, options, content, row) { // var windValue = row.a; // Adjust if necessary // return `
// ${windValue} days
// of strong wind //
`; // } // }); // // // // === WAVE GRAPH (using Chart.js) === // // (function() { // const waveSizeElement = document.getElementById('waveSizeChart'); // if (waveSizeElement) { // const waveSizeCtx = waveSizeElement.getContext('2d'); // // Create a vertical linear gradient // const waveSizeGradient = waveSizeCtx.createLinearGradient(0, 0, 0, 400); // waveSizeGradient.addColorStop(0, '#407bff'); // waveSizeGradient.addColorStop(1, '#92d5f9'); // // Ensure $wave1 is an indexed array // const waveData = //; // new Chart(waveSizeCtx, { // type: 'bar', // data: { // labels: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'], // datasets: [{ // label: 'Wave Size', // data: waveData, // backgroundColor: waveSizeGradient, // hoverBackgroundColor: waveSizeGradient, // borderRadius: { topLeft: 6, topRight: 6 }, // // borderRadius: 10, // barPercentage: 0.5, // categoryPercentage: 0.7, // }] // }, // options: { // plugins: { // legend: { display: false }, // tooltip: { // enabled: false, // Custom tooltip below // external: function(context) { // let tooltipEl = document.getElementById('custom-tooltip'); // if (!tooltipEl) { // tooltipEl = document.createElement('div'); // tooltipEl.id = 'custom-tooltip'; // tooltipEl.style.background = '#000'; // tooltipEl.style.borderRadius = '20px'; // tooltipEl.style.color = 'white'; // tooltipEl.style.opacity = 1; // tooltipEl.style.padding = '5px 5px'; // tooltipEl.style.position = 'absolute'; // tooltipEl.style.transform = 'translate(-50%, -100%)'; // tooltipEl.style.pointerEvents = 'none'; // tooltipEl.style.transition = '0.1s ease'; // document.body.appendChild(tooltipEl); // } // const tooltipModel = context.tooltip; // if (tooltipModel.opacity === 0) { // tooltipEl.style.opacity = 0; // return; // } // if (tooltipModel.body) { // const dataValue = tooltipModel.dataPoints[0].raw; // const percentage = Math.round((dataValue / 100) * 100); // tooltipEl.innerHTML = `
// ${percentage}% chances //
`; // } // const position = context.chart.canvas.getBoundingClientRect(); // const tooltipX = position.left + window.pageXOffset + tooltipModel.caretX; // const tooltipY = position.top + window.pageYOffset + tooltipModel.caretY; // tooltipEl.style.left = tooltipX + 'px'; // tooltipEl.style.top = tooltipY + 'px'; // tooltipEl.style.opacity = 1; // } // } // }, // scales: { // x: { grid: { display: false } }, // y: { grid: { display: false, color: '#F0F0F0' }, ticks: { stepSize: 5 } } // } // } // }); // } else { // console.error('waveSizeChart element not found!'); // } // })(); // // // // === DEPTH GRAPH (using Chart.js) === // // (function() { // const waterTempElement = document.getElementById('waterTempChart'); // if (waterTempElement) { // const waterTempCtx = waterTempElement.getContext('2d'); // // Create a vertical linear gradient for water temperature // const waterTempGradient = waterTempCtx.createLinearGradient(0, 0, 0, 400); // waterTempGradient.addColorStop(0, '#F2AD5B'); // waterTempGradient.addColorStop(1, '#7A9DF4'); // // Ensure $depth1 is an indexed array // const depthData = //; // new Chart(waterTempCtx, { // type: 'bar', // data: { // labels: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'], // datasets: [{ // label: 'Water Temp', // data: depthData, // backgroundColor: waterTempGradient, // hoverBackgroundColor: waterTempGradient, // borderRadius: { topLeft: 6, topRight: 6 }, // // borderRadius: 30, // barPercentage: 0.6, // categoryPercentage: 0.8, // }] // }, // options: { // plugins: { // legend: { display: false }, // tooltip: { // enabled: false, // external: function(context) { // let tooltipEl = document.getElementById('custom-tooltip'); // if (!tooltipEl) { // tooltipEl = document.createElement('div'); // tooltipEl.id = 'custom-tooltip'; // tooltipEl.style.background = '#000'; // tooltipEl.style.borderRadius = '15px'; // tooltipEl.style.color = 'white'; // tooltipEl.style.opacity = 1; // tooltipEl.style.padding = '5px 5px'; // tooltipEl.style.position = 'absolute'; // tooltipEl.style.transform = 'translate(-50%, -100%)'; // tooltipEl.style.pointerEvents = 'none'; // tooltipEl.style.transition = '0.1s ease'; // document.body.appendChild(tooltipEl); // } // const tooltipModel = context.tooltip; // if (tooltipModel.opacity === 0) { // tooltipEl.style.opacity = 0; // return; // } // if (tooltipModel.body) { // const dataValue = tooltipModel.dataPoints[0].raw; // tooltipEl.innerHTML = `
// ${dataValue}°C //
`; // } // const position = context.chart.canvas.getBoundingClientRect(); // const tooltipX = position.left + window.pageXOffset + tooltipModel.caretX; // const tooltipY = position.top + window.pageYOffset + tooltipModel.caretY; // tooltipEl.style.left = tooltipX + 'px'; // tooltipEl.style.top = tooltipY + 'px'; // tooltipEl.style.opacity = 1; // } // } // }, // scales: { // x: { grid: { display: false } }, // y: { // grid: { display: false, color: '#F0F0F0' }, // ticks: { // stepSize: 5, // callback: function(value) { return value + '°C'; } // } // } // } // } // }); // } else { // console.error('waterTempChart element not found!'); // } // })(); // // }); //

Search

Where will your adventure begin?