{"id":19544809,"url":"https://github.com/drewalth/wh2o-go","last_synced_at":"2026-05-14T11:38:28.601Z","repository":{"id":156929573,"uuid":"435002945","full_name":"drewalth/wh2o-go","owner":"drewalth","description":"Notifications for river gages in the United States, Canada, New Zealand and Chile in a single binary executable","archived":false,"fork":false,"pushed_at":"2022-09-09T04:26:37.000Z","size":3211,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T19:21:36.667Z","etag":null,"topics":["alert","canada","chile","email","notifications","nz","river","sms","usgs","whitewater"],"latest_commit_sha":null,"homepage":"https://drewalth.github.io/wh2o-go/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drewalth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-12-04T20:32:11.000Z","updated_at":"2023-05-31T23:23:47.000Z","dependencies_parsed_at":"2023-09-30T00:17:34.645Z","dependency_job_id":null,"html_url":"https://github.com/drewalth/wh2o-go","commit_stats":{"total_commits":47,"total_committers":1,"mean_commits":47.0,"dds":0.0,"last_synced_commit":"b783beaf6d6b492af78989c8eed2f10ca15cf813"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewalth%2Fwh2o-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewalth%2Fwh2o-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewalth%2Fwh2o-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewalth%2Fwh2o-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drewalth","download_url":"https://codeload.github.com/drewalth/wh2o-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240801039,"owners_count":19859727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alert","canada","chile","email","notifications","nz","river","sms","usgs","whitewater"],"created_at":"2024-11-11T03:32:05.840Z","updated_at":"2026-05-14T11:38:28.562Z","avatar_url":"https://github.com/drewalth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center;\"\u003e\n\n![logo](https://wh2o-assets-static.s3.us-west-1.amazonaws.com/wh2o-logo.png)\n\n## wh2o-go\n\n\u003c/div\u003e\n\nSelf-hosted dashboard and custom notifications via Email and SMS for rivers in the United States, Canada, New Zealand\nand Chile.\n\n\u003e If you do not want to self-host this app see [wh2o.io](https://wh2o.io/)\n\n## Features\n\n- Daily Reports. Schedule daily emails summarizing your bookmarked gages sent with [Mailgun](https://www.mailgun.com/).\n- Immediate Alerts. Use the [Twilio](https://www.twilio.com/docs/sms) SDK to send an SMS when your favorite local creek\n  is at prime flow.\n- Dashboard. View all your bookmarked gages and their latest readings in one spot.\n\n## Data Sources\n\nRiver data for gages in the United States come from the United States Geological\nSurvey's [REST API](http://waterservices.usgs.gov) and are fetched every 15 minutes.\n\nReadings for Canadian gages come from hourly reports published by the [Canadian Government](https://weather.gc.ca/). The\nreports are distributed as CSVs downloaded, then parsed for the dashboard.\n\nReadings from New Zealand and Chile are fetched every hour using web scrapers.\n\n## Getting Started\n\nThe easiest way to run the app is to clone or download this repository then build it locally on your machine.\n\nThis requires:\n\n- [Golang](https://go.dev/)\n- [Nodejs](https://nodejs.org/en/)\n- [Git](https://git-scm.com/) (if you want to clone the repo)\n\nOnce you have a copy of the repository on your machine, open Terminal (or Command Prompt on Windows) and navigate to\nthe `wh2o-go` directory. Next make the included build script executable then run it. This will compile the React app (\nclient), the Go server (API) and output a single executable binary in `wh2o-go/bin/main`. (Definitely one of my favorite\nfeatures of Go! Fullstack app in a single binary?! 😎)\n\n```shell\nchmod +x ./_script/build.sh\n./_script/build.sh\n```\n\nNext to send yourself Email and SMS, create accounts with [Mailgun Account](https://www.mailgun.com/)\nand [Twilio Account](https://www.twilio.com/docs/sms).\n\n\u003e You do not _need_ either a Mailgun or a Twilio account to use the app. You can still view aggregate gage readings from\n\u003e your bookmarked gages without going through the hassle of creating new accounts.\n\nOnce your accounts are set up, open the app in your web browser by entering `http://localhost:3000` in the URL bar.\nNavigate to the Settings tab and input your Mailgun and Twilio credentials.\n\nNow you're ready to start bookmarking gages and creating alerts!\n\n## Contributing\n\nIf you would like to contribute to this project, please feel free to create a new branch and open a Pull Request!\n\n### Development\n\nFrom the `wh2o-go` directory, navigate to the `client/` and start the React app:\n\n```shell\ncd client/\nnpm start\n```\n\nThe Webpack dev server will open your browser automatically at `http://localhost:8080`.\n\nIn a new Terminal tab and from the `wh2o-go` directory, start the Go server:\n\n```shell\ngo run main.go\n```\n\nIf you are making changes to and of the [gage source JSON files](/gage/sources), please note that you will have to\nrestart the Go server to see the changes reflected. This is because they are embedded in the binary.\n\n## Screenshots\n\n##### Alert Dashboard\n\n![Alert Dashboard](/client/public/wh2o-next-alert-01.png)\n\n##### Gage Dashboard\n\n![Gage Dashboard](/client/public/wh2o-next-gage-02.png)\n\n##### Bookmarking a Gage\n\n![Bookmarking a Gage](/client/public/wh2o-next-gage-01.png)\n\n##### Alert Dashboard\n\n![Alert Dashboard](/client/public/wh2o-next-alert-01.png)\n\n##### Adding Immediate Email Notification\n\n![Adding Immediate Email Notification](/client/public/wh2o-next-alert-02.png)\n\n##### Adding Daily Email Notification\n\n![Adding Daily Email Notification](/client/public/wh2o-next-alert-03.png)\n\n##### Mailgun Config\n\n![Mailgun Config](/client/public/wh2o-next-settings-02.png)\n\n##### Twilio Config\n\n![Twilio Config](/client/public/wh2o-next-settings-01.png)\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\nI cannot find the gage I am looking for. How can I add one?\n\u003c/summary\u003e\n\nIf you cannot find a USGS gage in the set, you can manually insert the gage's site number in the input when adding a\nbookmark. Alternatively, you can add the gage to the source JSON file. See all [gage sources](/lib/sources).\n\n![USGS Page](/client/public/wh2o-next-gage-site-01.png)\n\n\u003c/details\u003e\n\n## Nextjs\n\nIf you'd prefer not to work with Go and just JavaScript/Nodejs, check out\nthe [NextJs Branch](https://github.com/drewalth/wh2o-next/tree/nextjs). Note that this version of the app is no longer\nbeing actively worked on.\n\n## Related Projects\n\nThis app is not intended to be a guidebook. For river beta in British Columbia,\ncheckout [bcwhitewater.org](https://www.bcwhitewater.org/).\n\nIf you're looking for a native mobile app, I highly\nrecommend [RiverApp](https://apps.apple.com/us/app/riverapp-river-levels/id667012473). They have a HUGE dataset and\nactive community of paddlers around the world. \n\nFor river beta in the United States,\nsee [americanwhitewater.org](https://www.americanwhitewater.org/) or check out their open-source\nprojects, [@AmericanWhitewater](https://github.com/AmericanWhitewater).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewalth%2Fwh2o-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrewalth%2Fwh2o-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewalth%2Fwh2o-go/lists"}