Jumped to 22 kts SW. That meter is 28 miles up the shore, upwind of your spot.
📆WindStoke6:00 AM
📆 Saturday looks good at Grand Haven
3 of 4 models agree on 18-22 kts SW. Clear your afternoon.
🌡️WindStoke1:15 PM
🌡️ NW thermal filling in at Muskegon
Forecast said East, not rideable. It's swinging NW and building, 8 to 14 kts. Be on the water by 2:00.
Wind doesn't arrive. It travels.
One shore, one night, and every meter on it.
LAKE MICHIGAN - EAST SHORE · MAY 6, 2026 – MAY 7, 2026
Wind crossed 324 miles of shore in 18 hours
Michigan City hit 12 knots at 8 PM. Mackinaw City, 324 miles up the same shore, hit it at 2 PM the next day. That is the thing an alert can be built on, and it is why we watch the meters upwind of you instead of only the one at your beach.
12 kt24+no readingfirst hit 12 kt
WIND MOVED ALONG THIS SHOREMICHIGAN CITY 8 PM → MACKINAW CITY 2 PM +1d324 mi18 h19 mph NORTHr² 0.96
—drag the chart to scrub
17 meters on the Lake Michigan - East Shore chain. Each column takes the nearest reading within 25 minutes of it; hatching means that meter sent nothing, which is a different fact from a calm one. Nothing is modelled and nothing is filled in between meters. 5 meters sent nothing across the whole window, and 2 meters on this coast are permanently offline and absent from the picture entirely — we would rather show the hole than paint over it.
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.
And here's the part that gets you: the forecast said today was dead. Light, out of the east, not worth the gas. He came anyway, because he knew the sand would bake by noon and the lake would answer, that by two it'd be cranking out of the northwest. It always does. Your app never saw it coming. He did.
Four things that change when you stop guessing and start knowing.
01Upwind Radar
WindStokenow
🔥 Port Washington jumped 8 → 19 kts. That meter is 28 miles upwind of your spot.
It watches the water upwind of you.
The local checks the meters up the shore before he loads the car. WindStoke checks all of them, and tells you the moment one upwind of you fires. It reports what the meter did and how far away it is — it won't tell you a minute the wind will arrive, because we can't measure that well enough yet to put a time on it.
02Virtual Station
WindStokelive
Estimated 19 kts at your sandbar. Nearest observation: 18.5 kts. No station within 8 miles.
It knows your spot.
Your favorite beach doesn't have a wind meter. WindStoke learns the relationship between nearby stations and your coordinates, then builds you a virtual weather station where none exists.
03Session Match
WindStoke6:00 AM
Thursday matches 47 past sessions. Like Aug 14th, when you rated it 🔥. You wrote: "come earlier."
It remembers your best days.
Log your sessions. When those conditions return, your own words come back to you, like a buddy who was there and has a better memory than you do.
04Thermal Alert
WindStoke1:15 PM
🌡️ Afternoon NW thermal filling in at Muskegon, building to 16 kts. The forecast said East 8.
It feels the breeze the forecast misses.
On a sunny day the land bakes and the lake answers. A thermal cranks onshore while the forecast still reads dead. WindStoke learns each spot's afternoon sea breeze and pings you the moment it's igniting, hours before it peaks.
05Ask Jetty
Ask Jettyjust now
"Worth burning a vacation day for Thursday at Muskegon?"
Thursday's your day. SW 18 to 22 filling in late morning and holding into the evening, and three of four models agree on it. Friday's the one I'd skip. It swings east and dies by noon.
It answers in plain English.
Ask it anything about your spots the way you'd text a buddy who's already looked. Jetty reads your actual forecast, not the internet, so every number in the answer comes from the data. When the models disagree, he says so instead of picking one to sound confident. He's named after Jetty, the guy who used to answer these questions on our old blog.
The wind the forecast doesn’t have.
MUSKEGON · MKGM4 · JUNE 7, 2026
measured windwhat the model heldwind it didn’t havewind was onshore
The model said 7 knots. We said 18. It blew 18.1.One good day is an illustration, not evidence. The evidence is the whole record: of every lake-breeze alert we have sent and since graded, 21 of 34 were confirmed.
and here is the day it happened
Every point is one observation from MKGM4 — 94 of them that day — timestamped UTC and redrawn in America/Detroit. The dashed line is the single figure the model held for that afternoon, recorded that morning before any of this happened; the chart opens at the hour we sent the watch, and the shaded band is every reading that came in above it, on a morning reading air 82°F over water 6°F.
What a lake breeze is, how we spot one coming, and the record of every call — on the forecast FAQ →
Set up once. Never check again.
1
Pick your spots
Choose from 1,000+ NOAA stations or drop a pin on your secret spot.
2
Dial in your conditions
Wind speed, direction, waves, temperature, all combined in one alert profile.
3
Go when it buzzes
Real-time when it's happening. Forecast alerts days ahead. You just show up.
The forecast isn’t wrong. It’s wrong differently at every beach.
NWS VS MEASURED WIND · 67 METERS · 0-5H AHEAD · 19 DAYS
the national forecastafter we correct it
At Ludington the national forecast promises 4.4 knots that never show up. At Port Washington it misses 2.4 that do. We shade every forecast by what that beach’s own meter has been measuring.So we don’t serve you the national number. Every forecast is shaded by what that spot’s own meter measured the last time we made the same forecast there.
LUDINGTONaveraged over 80 forecasts
national forecast4.4 kt too much wind
after we correct it2.5 kt too much wind
↓ 1.9 kt closer at this beach
PORT WASHINGTONaveraged over 80 forecasts
national forecast2.4 kt too little wind
after we correct it1.9 kt too little wind
↓ 0.4 kt closer at this beach
Each tick is one meter’s average signed error over 6,529 forecasts made 0-5h ahead across 19 days, every one graded against that meter’s own reading at that hour. 44 run high and 23 run low; 3 meters with fewer than 50 forecasts are left out rather than drawn thin, and meters that have not proven they can measure wind at all are excluded entirely. Across all 67 meters the correction is worth 0.22 kt of average error at this range — the two beaches above are the extremes, not the typical case — and its value fades to nothing past three days out.
Full method — the rolling window, the shrink, the 3 kt clamp and the rebuilt gust — on the forecast FAQ →
We test every model. You get the winner.
FORECAST LAB · 5 MODELS RACED · LAST 120 DAYS
behind the baselineahead, but under the bar
We race every model we can get at your spot, and serve whichever one wins. So far nothing has beaten NWS plus your own meter — which is how we know that is the right thing to be sending you.Not a default we settled on. A result we keep re-measuring, separately for every spot and every range, every night. The day a model wins there, your forecast switches to it and the forecast page says so.
Each bar is one model against the one we serve, over the same station-hours at the same lead, graded on what the meter actually read — shown at the range where that model came closest, which is the most generous reading of it we can give. Winning takes all four bars at once: 100 paired forecasts, across 14 separate days, a margin of 0.5 kt, and that margin bigger than twice its own error bar — and 0 have, which is why the table that records model switches is empty rather than missing.
The full board, all nine ranges, and what it takes for a model to earn a switch — on the forecast FAQ →
The receipts.
Every one of these is read straight out of our own record. Nothing here is written by hand.
The forecast missed it
On August 26 the models had Olcott Harbor topping out around 7 kt. We called an afternoon lake breeze at 8:00 AM that morning. It came in at 16 kt, 9° off the direction we called.
When we say no
The morning read says the engine never starts, and it has been right 85 times out of 85. Not one of those afternoons turned on.
Days worth rigging for
Across 63 verified days at Port Washington, the raw forecast stayed under 12 kt on 31 days that actually got there. We measure that gap and correct for it.
What early testers say.
Feedback from the riders testing it, on the lakes and on the coast.
"I stopped reading the hourly table. I ask Jetty if tomorrow is worth it and get a straight answer about my spot instead of a wall of numbers. When he hedges, I've learned to believe the hedge."
N
Noah V.
Kiteboarding · Grand Haven
"I'm out in San Diego, a long way from the Michigan water this was built on, and it still reads my spot right. It knows my station runs a few knots light in the afternoon and fixes the number before I ever see it."
C
Clint T.
San Diego, CA
"It's early days on the wave side and Jeff will tell you that himself. But the surf call has already been closer to what I actually paddled out into than anything else I can find for the lakes."
J
John V.
Surfing · Frankfort
The nod.
You're at the trucks after a session. Wetsuit peeled down. Hands still trembling. Cold beer. Sand in your ears. People are still showing up, rigging in full wind, asking how you got here so early.
The legend is two spots over. Same beer. Same lean against the tailgate. He nods at you. Not a wave. Not a conversation. Just a nod.
And it hits you. You've been the second car in the lot a lot lately. Your name shows up in the group chat now. People have been asking you how you knew.
You nod back.
Who's building this
I'm not the legend. I just got tired of missing it.
That's me out there. Frankfort, Michigan, one of the good ones.
I'm Jeff. I kite in Michigan, and I build WindStoke. All of it. The forecast pipeline, the alerts, the app, the emails you get, the reply when you write in. One guy.
This started in the early 2010s as a kiteboarding blog called Michigan Dawn Patrol, which I ran with my buddy Matt. Same obsession, worse tools. We were already trying to do a version of what this app does now: reading the upwind meters, calling the days, telling people when to drop everything and drive. But most of what we wanted was out of reach back then. Pulling in every model, tracking which one is actually right at your spot, watching a wind line move up the lake in real time. That was a research project in 2012, not something one person could ship.
It isn't anymore. So I'm building the wind and wave system I've always wanted for myself: the one you can rely on. When it tells you it's going to be good, you can start getting stoked, because it's going to be good. That's the whole bar. Everything in here gets checked against what actually happened, and anything I'm not sure about, I say I'm not sure about.
Fair warning, though: it's not finished. I'm still building and refining a lot of this. New spots, better wave calls, features that are half-in. You'll see rough edges. I'd rather you hear that from me than find it on your own. What I won't do is tell you it's on when I don't believe it.
Matt posted on Dawn Patrol under the handle Jetty. If you've used the app and wondered where "Ask Jetty" got its name, that's where. It felt right to name the thing that answers your questions after the guy who used to answer them.
If something's wrong at your beach, tell me. I'm the one who reads it.
J
Jeff
Kiteboarder · Michigan · Founder, WindStoke
Stop checking charts. Stop asking the group chat. Stop showing up late.
Spring 2026
First Season Free.
Sign up now. Full Premium through December 31. No charge until January 1.
Basic
$0 /always
Real-time wind alerts by email
1 alert profile, up to 3 stations
3-day forecast, corrected using your station's measured error