Improvement Spot Pages Match the Published Directory — The spot endpoint served every water body in the catalogue, not just the ones we publish. It now serves the curated list, matching the directory and the map.
Improvement Tighter Limits on Sign-In Attempts — Sign-in, registration and password-reset attempts are now capped per network address as well as per email address, and the service refuses to start in production without bot protection configured.
Improvement Accessibility Pass — The billing toggle now works with arrow keys the way a real radio group should, and announces the new price. Docs pages no longer nest two main regions. The FAQ keeps its focus outline, the mobile menu sits inside a proper navigation landmark, form labels are tied to their fields, icon-only buttons have names, and the location settings panel behaves like a real dialog with focus trapping and Escape to close.
Bug Fix Signing In With Google No Longer Dead-Ends — If you registered with a password and then tried Google or Apple on the same address, you were told to verify your email first. No verification email was ever sent, so there was no way to do it. The email now goes out, and the message points somewhere real.
Bug Fix Dam Release Warnings Now Show on the Dashboard — A reservoir with a dangerous dam release showed the warning on its own page but an ordinary score on the dashboard, because the dashboard was scoring without the release threshold. Both views now use the same information, so a no-go is a no-go wherever you see it.
Bug Fix Weather Outages No Longer Look Like Calm Water — When a weather service was unreachable, the blank result was saved as if it were a real reading and served for up to a day. A failed fetch is now treated as a failure: the last good reading stays put and the system retries on a schedule instead of overwriting it with nothing.
Bug Fix One Bad Station Stops Taking the Others Down With It — If a single river gauge was down, the readings from every other source for that spot were skipped too. Each source now stands on its own, so one outage costs you one reading instead of all of them.
Bug Fix Sign-In Handoff No Longer Puts Tokens in the URL — Signing in on the website used to hand your session to the web app through the address bar. It now passes a single-use code that expires in a minute and can only be redeemed once, and the app trades that code for your session directly with the server. Nothing sensitive travels in a link any more.
Bug Fix New Locations Stop Disappearing From the Dashboard — A location whose conditions could not be worked out yet was quietly left off the dashboard, which made a spot you had just added look like it never saved. It was saved the whole time. Locations now always show up, with the score held back until the data lands.
Improvement Social Images Are JPEG and Actually Ship — Per-spot social images are now generated during deploy instead of being quietly dropped, so spot pages stop pointing at images that were never there. They are JPEG rather than PNG now, which roughly halves the size of each one.
Improvement Faster Spot Pages — The map on a spot page now loads when you scroll near it rather than on arrival, so the page is interactive sooner.
Infrastructure Supply Chain and Dependency Cleanup — All deploy workflows install with scripts disabled, React Router moved to a patched release, and a mismatched image library version that left the website's dependency tree in a broken state is resolved.
Bug Fix Hardened Spot Names Against Injection — Spot names come from third-party station listings, so they are now treated as untrusted everywhere they are rendered. Page titles, meta tags, structured data and map popups all escape or strip markup. Three separate injection paths closed.
Bug Fix Spot Pages No Longer Vanish When the API Hiccups — The spot directory, state pages and spot sitemap used to swallow API failures and build a perfectly happy site with zero spots in it. A failed build is now a failed build, and at request time an outage returns a 503 that tells crawlers to come back instead of a cacheable 200 that told them the spot was gone.
Bug Fix Sign-In Reliability and Session Safety — Parallel requests could each try to renew your session at once, which the server read as a stolen token and signed you out everywhere. Renewals are now shared. A dropped connection or a rate limit no longer ends a valid session, signing out clears cached data so a shared browser cannot leak the previous account's spots, and signing out now revokes the session on the server too.
New Feature Dam Release Safety Veto — River spots downstream of a dam now automatically get a NO_GO rating when the release rate exceeds a configured threshold. South Fork American River kicks to NO_GO above 3,000 CFS, Lake Natoma above 10,000 CFS. Applies only to downstream-of-dam water bodies where high releases create dangerous conditions.
New Feature Five New California Reservoirs — Shasta Lake, Trinity Lake, New Melones Lake, Don Pedro Reservoir, and Pine Flat Lake are now live with CDEC reservoir monitoring. Adds about 12.4 million acre-feet of coverage across NorCal and Sierra paddling destinations.
New Feature Curated Explore Map — The nearby spots map and directory now only show water bodies we have manually curated with data sources. Cuts out the noise from non-paddle-appropriate entries that were imported from public waterway databases but never vetted. Direct spot lookups and search are unchanged.
Infrastructure Smarter Refresh Backoff — When a water body's data refresh fails repeatedly (bad station config, upstream down, permanent outage), the refresh loop now backs off exponentially instead of retrying every 15 minutes forever. 15 min for the first two failures, then 1 hour, then 6 hours, then 24 hours, then it gives up after about 10 days of consecutive failures. Successful fetches reset the counter. Cuts wasted API calls on broken spots and speeds up the refresh job for healthy ones.
Infrastructure Station Allowlists for Setup — The reservoir setup script now accepts a stations allowlist so cross-watershed and unrelated stations do not pollute monitoring data. Large reservoirs like Shasta that sit near other facilities get only their own stations.
Infrastructure Cross-Repo Dev Docs — CLAUDE.md files in each repo now cross-link to the workspace root, making shared conventions discoverable when working inside a single repo.
Bug Fix Faster First Fetch for New Spots — Brand-new water bodies now populate data on the next refresh tick instead of waiting 24 hours after the first user adds them. Also fixes the case where a visitor browses a never-fetched spot from the directory: the fetch pipeline is nudged in the background so returning visitors see live conditions.
New Feature Lake Oroville — Lake Oroville now available with full CDEC reservoir monitoring: storage, elevation, inflow/outflow, water temperature, and water quality from 9 nearby stations.
Infrastructure Reservoir Setup Script — New reusable setup-reservoir script automates CDEC station discovery for adding future reservoirs. Discovers stations, probes sensors, and generates SQL in one command.
Apr 8, 2026 — Spot Discovery & SEO
New Feature Browse Spots — New /spots directory page. Browse paddle spots by state and water body type.
New Feature Spot Page Enhancements — Spot pages now show nearby spots, descriptions, and structured data for better search visibility.
New Feature Dynamic Sitemap — All spot pages are now included in the sitemap for search engine discovery.
New Feature Social Sharing Images — Each spot gets a custom OG image with the spot name and location for better social sharing previews.
Improvement Popularity Tracking — Spot page views now contribute to popularity ranking, helping surface the most visited spots.
Apr 8, 2026 — Share Spots and Explore Nearby
New Feature Public Spot Pages — Every water body now has a public page at paddleconditions.com/spot/lake-tahoe showing current conditions, score, and a premium CTA. Share links with friends who don't have an account.
New Feature Explore Nearby Spots — Browse paddle spots near you at paddleconditions.com/explore. Interactive map with score markers, distance-sorted card grid, and filters for water body type and search radius.
New Feature Share Button — Tap the share icon on any location detail page to share conditions via native share sheet (mobile) or copy the link to clipboard (desktop).
Infrastructure Website SSR — Switched paddleconditions.com to hybrid server-side rendering for dynamic spot pages. Static pages stay fast, SSR pages get fresh data on every request with 15-minute edge caching.
Infrastructure End-to-End Testing — Added 17 Playwright e2e tests covering auth, subscription, location management, and account flows. Tests run against a local API with test database for full isolation.
Apr 7, 2026 — Linked Accounts and Social Login
New Feature Sign in with Google or Apple — You can now register or sign in with Google or Apple on the login and register pages. One tap and you're in, no password required.
New Feature Linked Accounts Management — Connect and disconnect Google and Apple from the Account settings page. Accounts with only a social provider can set a password to enable password-based login as well.
Improvement Profile Avatar in Header — When signed in with Google or Apple, your provider profile photo appears in the app header.
Apr 7, 2026 — Water Data Displays
New Feature Water Condition Tiles — Reservoir locations now show storage level gauges, elevation, dam outflow, and inflow right on the detail page. River locations display current stage with a gauge showing where the level falls relative to monthly normals. Water quality metrics and pet safety ratings appear when sensor data is available.
New Feature Streamflow Chart — A new 24-hour streamflow chart shows how flow has changed over the past day with threshold bands marking ideal, marginal, and high-flow zones.
Apr 6, 2026 — CDEC Station Discovery
Infrastructure Station Discovery Service — Built automated tooling to discover and probe CDEC water monitoring stations across California. Searches by location, river basin, or county and auto-detects available sensors (water temp, flow, stage, reservoir, water quality). Makes it fast to add new California water bodies to the system.
Apr 6, 2026 — California Water Data and Pet Safety
New Feature CDEC Data Integration — Added California's CDEC (California Data Exchange Center) as a new water data source. Over 1,500 stations across California now provide water temperature, river flow, stage levels, and reservoir data (storage, elevation, inflow, outflow, dam releases). CDEC data merges with existing USGS readings using a best-available strategy.
New Feature Reservoir Conditions Scoring — Reservoir water bodies now factor storage level into the paddle score. Low reservoir levels that affect launch ramp access or expose navigation hazards are reflected in your GO/CAUTION/NO_GO rating. High dam releases that create dangerous downstream conditions trigger an automatic NO_GO.
New Feature Water Quality Scoring — When available, water quality data (turbidity, dissolved oxygen, pH, conductivity) factors into your paddle score. Algal bloom conditions are automatically detected from sensor data.
New Feature Pet Safety Advisory — A new pet safety rating (SAFE, CAUTION, UNSAFE) appears when water quality data is available. Detects conditions dangerous for dogs like algal blooms, extreme pH, and high turbidity. Enable the 'paddles with pets' profile toggle to have unsafe water quality automatically flag your paddle as NO_GO.
Apr 6, 2026 — Dashboard Redesign and Accuracy Fixes
New Feature Paddle Score Chart — The location detail page now shows a Paddle Score chart as the first chart. See how your score trends through the day with GO and Caution reference lines.
Improvement Redesigned Dashboard Cards — Location cards got a fresh look. Clean blue left accent, large score number that shifts color with the rating, a description line explaining conditions at a glance, and a streamlined conditions row.
Improvement Better Refresh Button — The refresh button in the header now shows a spinning animation while fetching and actually forces a data refresh instead of just marking queries as stale.
Infrastructure Faster Cold Starts — The background refresh job now runs immediately when the server starts instead of waiting 5 minutes. After a server restart, cached conditions refresh right away.
Bug Fix Accurate Current Temperatures — Fixed a bug where current conditions (air temp, wind, feels-like) were pulled from the wrong hour in the NWS forecast data. Temperatures now correctly reflect the current hour.
Bug Fix iOS Safari Zoom Fix — Fixed an issue where iOS Safari would zoom in when tapping form fields on the login, register, and other pages. Inputs now use 16px font size and the viewport prevents unwanted zooming.
Mar 21, 2026 — Smart Conditions Caching
New Feature Stale Data Indicator — When conditions data is being refreshed in the background, a bar at the top of the page shows the data age with rotating paddle-themed messages. It disappears automatically once fresh data arrives.
Improvement Water Body Links for Locations — Locations now link to canonical water bodies from the catalog. Station configuration (USGS, NOAA sensors) is inherited from the water body rather than stored per location, keeping things consistent across users at the same spot.
Improvement Location Display Order — Added display ordering for saved locations. Your dashboard shows spots in the order you prefer.
Improvement Web App Docs Overhaul — Replaced the single-page web app guide with 8 focused pages covering getting started, dashboard, adding locations, location detail, scores, caching, and account management. Each page includes fresh mobile screenshots from the live app.
Improvement Docs Landing Page — Updated the documentation hub with a prominent changelog link and a cleaner 2-column card layout.
Infrastructure Water Body Conditions Cache — Conditions data is now cached per water body and shared across all users at the same location. Reduces redundant API calls and speeds up load times for popular spots.
Infrastructure Demand-Driven Background Refresh — Cache freshness adapts to usage. Popular spots with 6 or more active users refresh every 6 hours. Low-traffic locations refresh daily. Busy spots always stay fresh without wasting API quota.
Mar 21, 2026 — Dashboard Redesign & Multi-Station Data
New Feature Gradient Dashboard Cards — Dashboard cards got a complete visual overhaul. Each location card now features a smooth gradient background, a glowing overall score, and inline condition readings for temperature, wind, UV, and more at a glance.
New Feature Forecast Blocks — Dashboard cards now show upcoming forecast windows so you can see how conditions change throughout the day without tapping into each location.
New Feature Station Toggles — When adding a location, you can now see and toggle individual USGS and NOAA monitoring stations. Each station shows available data types (water temp, streamflow, tides) with icons so you know exactly what data you'll get.
Improvement Data Type Icons — New icon set for water temperature, streamflow, wind, UV index, air quality, and tides. Used throughout station toggles and location detail views to show what data each station provides.
Infrastructure Multi-Station Backend — Water bodies now link to multiple monitoring stations via a junction table. The import script discovers nearby USGS and NOAA stations, checks which parameters each one supports, and stores the full station-to-water-body mapping. The search API returns station details so the app can show data availability up front.
Mar 20, 2026 — Polish, Branding & Documentation
New Feature Fun Loading Messages — The splash screen now shows rotating paddle-themed messages (including haikus) while loading, plus context about what's happening behind the scenes.
New Feature Site Branding — Unified favicon across app and website with the signature gradient wave icon. Added Open Graph images for social sharing, apple-touch-icon for iOS home screens, and complete meta tags for both sites.
New Feature Web App Documentation — Published the complete Web App Guide covering dashboard, locations, scores, charts, and account management. No more 'coming soon' placeholder.
Improvement Cleaner Score Display — Removed the glow effect from dashboard score circles for a cleaner look.
Infrastructure SEO & Crawlability — Added robots.txt to both sites and submitted sitemap to Google Search Console for indexing.
Mar 20, 2026 — Accurate Weather for Lake Locations
New Feature NWS Weather Integration — US locations now pull weather data from the National Weather Service as the primary source. This fixes wildly inaccurate temperatures over large water bodies like Lake Tahoe, where grid-cell models were returning 19 degrees when the real temp was 52.
New Feature Changelog Page — Added paddleconditions.com/changelog with a timeline of all updates across the platform.
Improvement Smart Data Merging — Weather data is now assembled from multiple sources: NWS for temperature, wind, and precipitation, plus Open-Meteo for UV index and visibility. Non-US locations continue using Open-Meteo with automatic fallback if NWS is unavailable.
Improvement Full-Day Charts — Forecast charts now show consistent 5 AM to 9 PM coverage regardless of when you load the page. Weather data is merged from NWS (accurate current conditions) and Open-Meteo (full-day historical and forecast hours).
Improvement Cleaner Chart Labels — X-axis labels spaced every 2 hours for even spacing. Tap anywhere on the chart to see exact hourly values.
Improvement Friendly Limiting Factor — Limiting factor now shows context like 'Temperature (Cold)' or 'Wind (Windy)' instead of raw scores.
Infrastructure Database Collation Upgrade — Migrated database to MariaDB Unicode 14.0 (utf8mb4_uca1400_ai_ci) for proper international character handling.
Infrastructure Added slug-based URLs and unique constraints for cleaner location links.
Bug Fix Water Temperature Now Working — Fixed a bug where water temperature showed N/A for all locations. The database was storing station configurations correctly but the API wasn't reading them properly.
Bug Fix Fixed CI pipeline: resolved migration conflicts and test database setup issues.
Mar 19, 2026 — Dashboard Redesign Spec
Improvement Dashboard & Add Location Redesign — Published design spec for the next generation dashboard with CSS variable theming, improved add-location flow, and better station data visibility on location pages.
Bug Fix Fixed wind speed tooltip showing "Gusts" twice instead of "Gusts" and "Speed".
Mar 17, 2026 — Premium Web App Launch
Premium Web App
Launched the React SPA at app.paddleconditions.com with user accounts, location sync, and subscription management via Stripe and Apple IAP.
New Feature Conditions API — Deployed the backend API powering the web app: real-time paddle scoring, hourly forecasts, multi-spot conditions, and bulk location queries.
Infrastructure Separated public HACS repo from private API and app code for clean open-source/premium split.
Mar 13, 2026 — v1.0.0 Official Release
v1.0.0 Released
First official stable release of the Home Assistant integration, published to HACS with Gold quality scale compliance.
New Feature Full Accessibility — Added keyboard navigation, ARIA labels, focus indicators, screen reader support, reduced-motion preference, and dialog focus trapping across all dashboard cards.
New Feature Config Flow Validation — Location setup now validates weather API connectivity before saving, preventing broken configurations.
Improvement Quality Scale Compliance — Added entity categories, custom MDI icons for all 13 sensors, and disabled non-essential sensors by default. Documented compliance with all 51 Home Assistant quality rules.
Infrastructure CI Overhaul — Switched to self-hosted runner, upgraded to Python 3.14 and GitHub Actions v6, added pip caching. Fixed all 30 failing tests.
Mar 12, 2026 — Detail Overlay & Bug Fixes
New Feature Detail Overlay — Tap any score card to see hourly condition charts in a full-screen overlay with factor breakdowns.
Improvement Implemented disk caching of API data for fast restarts and resilience during API outages.
Bug Fix 8 Bug Fixes — Fixed startup freeze by parallelizing coordinator refresh, fixed companion app card loading via Lovelace resources API, fixed overlay centering on wide screens, and 5 other verified bugs from code review.
Mar 11, 2026 — Initial Launch
Paddle Conditions for Home Assistant
Initial release of the custom integration. Real-time paddle scoring with wind, weather, water, and UV conditions for any location. Includes a dynamic auto-generated dashboard, custom Lovelace cards, and multi-spot support.
New Feature Smart Scoring Engine — Multi-factor paddle scoring from 0-100 with GO/CAUTION/NO_GO ratings. Factors include wind, gusts, temperature, UV, visibility, precipitation, water conditions, and thunderstorm veto.
New Feature Custom Dashboard Cards — Bundled Lovelace cards: paddle-score-card with tap-to-expand factor forecasts, paddle-spots-card for multi-location overview, and best-time-to-paddle calculation with daylight filtering.
New Feature Hourly Forecasts — 24-hour forecast with per-hour scores, wind charts, precipitation, and 3-hour time block ratings from 6 AM to 9 PM.
Improvement Preset Locations — Quick-add popular paddle spots with pre-configured coordinates and data sources during setup.
Improvement Location editing via subentry reconfigure flow. Change coordinates, data sources, or activity type for existing locations.