You know the guy.
Every spot has one. He's already on the water when you pull in. He's always already on the water when you pull in. You don't know what he does for a living. He's got the tan and the sun-bleached hair and that lean, weathered look that tells you everything about his priorities without him saying a word.
You're rigging up and you hear it before you see it. A kite ripping through a turn so hard the lines sing. He's way above the water, kite looping, and he floats it down with a heli like gravity is a suggestion. Lands soft. Carves out. Already setting up the next one before the spray settles.
And that's the part that gets you. What he does out there isn't talent. It's reps. Thousands of hours of reps. Time you'd have too, if you could just be out there as much as he is.
But every now and then, a day lines up. You get the call. You make the drive.
You pull around the corner and there it is. Whitecaps. The whole lake is textured and moving and alive. You can hear it through the closed windows. A low, constant roar that's different from the calm-day lapping. The flags at the launch are straight out, popping and snapping, that playing-card-in-a-bicycle-spoke sound that means it's real. Sand is skipping across the parking lot in little rivers. There are kites in the air. Three, maybe four, their canopies flexing and twitching against the grey.
Your bladder suddenly has an opinion even though you went right before you left the house. Your brain is already running the checklist: bar, lines, harness, pump, did I grab the right kite. And you're not even parked yet. That lake-and-sand smell is sharper when the wind's up, like the water is closer than it actually is.
Later. After. You're on the tailgate, wetsuit peeled to your waist, hands still trembling. Not from cold. From two hours of holding on. He's leaning against his truck two spots over. Same quiet. Same heavy arms. You ask him how he knew.
"Ludington spiked at 2. Muskegon at 2:45. I figured we had about 40 minutes." He says it like he's telling you where he parked.
"Get out here. Bring the 12."
And he was right. He doesn't explain his process. He just tells you when it's on, and when he says it's on, you go. Because by the time everyone else figures it out, you've already been on the water for an hour.
You've been burned. Everyone has.
That Saturday the forecast said 18 knots. You sat in the parking lot for forty-five minutes with the windows cracked, listening to nothing. The flags hung there like wet laundry. The lake was glass. You drove home with your gear still strapped to the roof, feeling like you'd been stood up.
That Tuesday you heard about at work the next morning. The best session of the fall, and everyone was there except you. You were at your desk, ten minutes away. You didn't know until the photos hit the group chat that night: your buddy backlit against a sunset, spray coming off his board like sparks. Your body wanted to be there. It just didn't know in time.
So you set up alerts on three different apps, and now you get pinged every time the wind crosses 15 knots anywhere near your zip code. 2 AM cold fronts. Squalls gone before sunrise. The apps don't know when you can ride. They just see a number cross a threshold and fire. And the daily ritual eats twenty minutes you never get back: one model says 18, one says 12, one says 15 and dropping. You put your phone down. You pick it up again.
You're not looking for weather data. You're looking for someone to tell you whether to go.
Not one of them will look you in the eye and say: "Go. Right now. It's on."
It's 11:15 on a Tuesday and you're in a meeting but you're not in the meeting. You're on your phone under the table checking the wind readings at Muskegon. Eight knots. The forecast said 20 by 12:30. Your gear is in the car because you packed it this morning just in case, like you do two or three times a week.
11:40. Ten knots. It's moving. Or is it? The forecast said 20 last Wednesday too and it barely hit 14. 11:55. Twelve. Your leg is bouncing under the conference table. If you leave now you can be rigged by 12:20 โ but if it dies at 14 you'll have driven twenty minutes each way for nothing. The forecast doesn't know about the tree line or the way the bay curves or the thermal that sometimes kicks in and sometimes doesn't.
You don't go. You eat lunch at your desk. At 12:40 you check one more time. Twenty-two knots. It built. It's on and you're sitting in a swivel chair with a sandwich.
That's not a bad forecast. That's a missing piece. You had the data. What you didn't have was anyone willing to say: go now, it's going to build, trust this one.
Now here's the same Tuesday with WindStoke.
You're at work. 11:20, your phone buzzes.
You don't hesitate. You don't open three other apps to cross-reference. You've watched this system be right enough times that you already know what you're going to do before you've finished reading the alert. "This one looks real." That's all you needed โ not 14 models in a spreadsheet, just someone who's been tracking accuracy at this specific station telling you this call is solid.
You're in the car by 11:30. Gear's already loaded. You're already picking your kite. The 12. Definitely the 12. You pull in and the windsock is starting to stretch โ not full yet, but it's got that twitchy energy, like it knows what's coming. By 12:25 the wind fills in, right on schedule, and you're already on the water.
It holds for two hours. The kind of wind where you lose track of everything โ time, your phone, the meeting you were supposed to be in. You only come in because your arms are telling you to.
You drive back with wet hair and that post-session quiet where the world feels turned down to zero. Last week you sat at your desk with a sandwich while 22 knots blew without you. Today you got every minute of it. Same forecast. Same spot. The only difference was knowing this one was real.
Now a different problem. Your favorite spot is past the second jetty. Half-mile walk through soft sand and poison ivy. Nobody goes there, which is why you love it. But there's no weather station within 8 miles. Every app is blind here.
You've been checking the airport three towns over and guessing. Sometimes it translates to your sandbar, sometimes it doesn't. You never know until you've made the walk, kite bag digging into your shoulder, and you're standing there staring at either churning water or dead calm with a half-mile trudge back.
Then one morning your phone buzzes with an alert. Not for the airport. For your sandbar.
An estimated wind speed, right now, at your coordinates. WindStoke spent months doing quietly what your buddy does over years: watching the relationship between that airport and what actually happens where you ride. Southwest means add 3 knots because the wind accelerates over the dunes. North means subtract 3 because the tree line catches it. East doesn't translate at all. A virtual weather station at the spot past the poison ivy where nobody goes.
The first time the estimate was right, you figured coincidence. The second time, you paused. The third time, you were standing knee-deep in the exact wind it predicted, and you realized this thing knows your spot better than you do.
Nobody can see your weather station but you.
The receipts.
That last one matters. The buddy who says "I don't know about Sunday" is the same buddy you drop everything for when he says "GO." The honesty is what makes the confidence real. By the third week, you stop reading the proof feed because you already trust the buzz on your phone. When it says it's on, you grab your keys.
Here's what nobody tells you about wind sports: the gap between you and the guy you admire isn't talent. It's hours on the water. And hours on the water come from one thing: being there when it's on.
WindStoke doesn't make you a better rider. The water does that. WindStoke just gets you to the water โ more often, with more confidence, on the days that matter. Over a season, ten sessions you would have missed become ten sessions you didn't. And that's where the jump happens. That trick you've been trying. That upwind angle you couldn't hold. That moment where everything is quiet except the wind and the water and you think: I'm getting good at this.
It's late August. You pull around the corner. Whitecaps. Flags straight out, snapping so hard you can hear them over the engine. You're on the water before the lot fills up. Not because you're checking stations at 5 AM. Because your phone buzzed and you trusted it and you went.
Later. The trucks. The tailgate. The beer is so cold it hurts your teeth, and your hands are shaking a little when you hold it, and that's how you know it was good. He's there too. Of course he is. But for the first time, you don't feel like you're watching from across a gap. You were out there for the same two hours he was. And there was a moment out there, just one, maybe two seconds, where you did something that surprised even you.
He saw it. You know because when you walk up the beach, board under your arm, legs heavy in the sand, he looks over from his tailgate. Doesn't say anything. Just lifts his chin. The nod he gives to people who ride.
You're becoming the guy.
My name is Jeff. That's me in the water up there, the small one, a long way from the camera. That's Frankfort, Michigan. I kite all over the state, and I build WindStoke by myself — the forecast pipeline, the alerts, the app, the email in your inbox, the reply when you write back.
In the early 2010s I ran a kiteboarding blog called Michigan Dawn Patrol with my buddy Matt, and we were already trying to do a rough version of this: reading the meters up the lake, calling the days, posting when it was worth dropping everything. Racing every model against what actually happened at one beach was a research project in 2012, not something one guy could build on nights and weekends. Now it isn't. So I'm building the system I always wanted: when it says it's going to be good, it's going to be good. And when I don't know, I'll tell you I don't know — that part matters just as much.
It's not finished. There are features half-in, spots I haven't dialed yet, rough edges you'll find before I do. But every season it gets sharper, and it gets sharper faster when riders tell me what it missed at their beach.
Matt posted on Dawn Patrol as "Jetty" — that's where Ask Jetty gets its name.
So if it blows the call at your spot, tell me. I'm the one reading it.