Privacy Policy

Last updated: May 16, 2026

CragReport (“we”, “us”) is a climbing-conditions forecast service operated by Riley Tavasso. This policy explains what we collect, why, and the controls you have over your data. We try to keep this short and human-readable.

Who runs this service

CragReport is an independent project run by Riley Tavassoli. Contact: cragreport@gmail.com.

What we collect

We only collect what we need to run the service.

Account data

  • OAuth identity — when you sign in with Google, GitHub, or Apple, we receive your unique provider ID, name, and email. We persist only an account identifier derived from the provider ID. Your name and email pass through during the sign-in handshake and are held in your signed-in session token, but are not stored in our database.
  • Username — a display name (auto-generated or chosen by you) attached to community condition reports.
  • Favorites, alerts, preferences — climbing areas you save and notification thresholds you configure.

Location

  • When you allow location access, your precise GPS coordinates are sent to our servers only to find nearby crags for that request. We do not store your location history.

Condition reports

  • Reports you submit (conditions, friction, optional photo, optional note) are attached to your username and are visible to other users.

Push notifications (mobile)

  • When you enable push, we store the device push token issued by Apple (APNs) or Google (FCM) so we can deliver condition alerts. Alerts are delivered as push notifications only; we do not send alert emails.

Technical & analytics

  • Server logs — request paths, response codes, and a hashed IP for abuse-prevention rate-limiting. Raw IPs are not retained.
  • Product analytics — we use PostHog (PostHog Cloud, United States region) to capture usage events so we can understand which features people use and where the app falls short. Events are linked to your account if you are signed in, and to an anonymous device ID otherwise. We do not use any third-party advertising or cross-site tracking.

What product analytics actually captures

To be specific, the events we send to PostHog include:

  • Navigation — page and screen views ($pageview), and which forecast windows or hours you look at on a crag detail page.
  • Search — that a search happened, the query length (not the text), the number of results, and which result you clicked.
  • Crag interactions — which crags you view, when you change wall configuration (aspect, tilt, shade, rock-type, ideal temperature), and when you favorite or unfavorite a crag.
  • Alerts & notifications — when you create, enable, disable, or tap an alert.
  • Sign-in — that a sign-in was started or completed, and which provider was used (Google / Apple / GitHub). We do not capture credentials.
  • Preferences — when you change a unit setting (temperature, wind, distance).
  • Comparison & planning (web) — opening the compare view, hovering or clicking a timeline window, viewing a recommended window.

We deliberately do not log the contents of fields such as report notes, your search query text, or any personally identifying free-form input.

How we use it

  • To compute and display climbing-condition forecasts.
  • To save your favorites, alerts, and preferences across devices.
  • To deliver the condition alerts you have explicitly subscribed to (as push notifications on mobile).
  • To understand which features get used and to prioritize what to build or fix — this is the “product analytics” section above and it is real: we look at aggregate usage to make product decisions.
  • To prevent abuse (rate-limit by hashed IP and account).

We do not sell your data, and we do not use it for advertising or for cross-application tracking.

Who we share data with

We only share data with the providers needed to run the service:

  • Google, GitHub, Apple — only as part of the OAuth sign-in flow you initiate.
  • Render — application hosting, PostgreSQL, and Redis (United States).
  • PostHog — product analytics (PostHog Cloud, US region).
  • Apple APNs / Google FCM — delivering mobile push notifications.
  • Open-Meteo, NOAA MRMS — weather data sources. Only crag coordinates are sent; no user identity is shared.

Publicly visible content

Your username and any condition reports you submit are visible to other users of CragReport. Treat anything you submit as public. Photos attached to reports are stored on our servers and shown publicly.

Your rights and controls

  • Edit your username at any time on the profile page.
  • Delete your account. You can permanently delete your account and everything associated with it (favorites, alerts, reports, photos, push tokens, preferences) from the in-app Settings screen on mobile, or the Danger Zone section of the web profile page. Deletion is immediate and irreversible.
  • Disable push or email alerts any time from in-app settings.
  • Disable location access at the OS level (iOS/Android Settings) or in your browser. CragReport still works without location.
  • Disable analytics. Set the environment variable NEXT_PUBLIC_DISABLE_ANALYTICS=1 for self-hosted users, or block the PostHog domain via a privacy extension.
  • Request a data export. Email us at cragreport@gmail.com and we will send you a copy of the data we have on your account.

Data retention

  • Account data is retained until you delete your account.
  • Condition reports are retained for the life of the service (community history) unless you delete them or your account.
  • Server logs and aggregated analytics are retained for up to 12 months for debugging and abuse prevention.

Security

Connections to CragReport are encrypted with HTTPS. Authentication tokens are stored in iOS Keychain / Android Keystore on mobile, and in HttpOnly cookies on the web. Sensitive secrets (database credentials, OAuth client secrets) are stored only on our hosting provider and are never sent to your device.

Children

CragReport is not directed to children under 13, and we do not knowingly collect data from anyone under 13. If you believe a child has provided us data, email cragreport@gmail.com and we will delete it.

International users

CragReport servers are located in the United States. By using the service from outside the U.S. you consent to the transfer of your data to the United States.

Changes to this policy

If we make material changes we will update the “Last updated” date at the top of this page and, where appropriate, surface a notice in the app. Continued use of CragReport after changes constitutes acceptance.

Contact

Questions, data requests, or concerns: cragreport@gmail.com.