For sea/kayak users, slack-tide and high-tide windows often matter more than the wind/wave score alone. Wading out at low tide on the Andaman side is the actual blocker on otherwise-perfect days.
Goal
Surface tide info in the forecast table and bias the trip-score (sea mode) toward slack water / high tide where relevant.
Scope
- Pick a provider — none of the truly free ones cover global oceans well. Options, in rough order of viability:
- Stormglass.io — free tier 50 req/day, good global coverage.
- WorldTides.info — pay-as-you-go, also global.
- NOAA CO-OPS — free but US-only; not useful for Thailand.
- New
/api/tides?lat=&lon= endpoint, server-cached for ≥ 6 h (tides are deterministic).
- Add to fused hour: nearest high/low timestamp, current water height, "phase" (rising / falling / slack).
- In
trip-score.ts:
- kayaking / swimming verdicts gain a penalty when the trip overlaps low tide ± 1 h.
- ferry/boat is mostly unaffected unless very low tide.
- Display: a small column with the next high/low time, or expand the marine block under each row.
Tradeoff
Needs an account + API key (paid past free tier). Without tides the app still works — this is for users targeting marine activities.
Effort
Medium. Most of the work is provider choice + caching, the scoring change is small.
For sea/kayak users, slack-tide and high-tide windows often matter more than the wind/wave score alone. Wading out at low tide on the Andaman side is the actual blocker on otherwise-perfect days.
Goal
Surface tide info in the forecast table and bias the trip-score (sea mode) toward slack water / high tide where relevant.
Scope
/api/tides?lat=&lon=endpoint, server-cached for ≥ 6 h (tides are deterministic).trip-score.ts:Tradeoff
Needs an account + API key (paid past free tier). Without tides the app still works — this is for users targeting marine activities.
Effort
Medium. Most of the work is provider choice + caching, the scoring change is small.