Privacy Policy

Back to App

Effective 26 October 2026.

This policy covers WebCHIRP: the website at webchirp.org (formerly codeplug.org) and the WebCHIRP Android app (com.hf2j.webchirp), which shows that same website. Everything below applies to both.

In short

Who we are

WebCHIRP is developed and published by HF2J, the developer named on the Google Play listing, who decides how the data described here is used.

Usage statistics (Google Analytics)

On webchirp.org and codeplug.org the app uses Google Analytics 4, provided by Google, which processes the data for us as a service provider. Copies of WebCHIRP hosted anywhere else do not load it. It tells us which radios people use and where the app fails, so we know what to fix.

It runs only if you allow it. A banner asks on your first visit, and until you press Accept nothing is sent to Google and no Google Analytics cookie is set. Actions you take before answering wait in the page's memory: Accept sends them, Decline drops them. Your answer is kept on your device (webchirp-analytics-consent in local storage). To change it, use Cookie settings at the bottom of the app, the About page or this page. Declining after you accepted switches Google Analytics off and deletes its cookies. Accepting allows analytics storage only: the app tells Google to keep ad storage, ad user data and ad personalisation off.

What is collected once you accept:

Every event parameter the app sends

display_mode, install_outcome, radio, radio_module, radio_class, method, duration_ms, stage, error_kind, error_type, catalog_source, transport, channel_count, channel_count_bucket, codeplug_source, format, import_source, import_mode, outcome, repeater_source, result_count, country, located, preset, first_column, issue_count, field_count, tab, served_from, launch_count, delivery, event_count, dropped_count, launch_count_bucket.

If you accepted, events that happen while you are offline wait in your browser's storage and are sent the next time the app loads online. Declining deletes any that are waiting. Google keeps user-level and event-level data for 14 months and then deletes it. Google explains how it uses this data in How Google uses information from sites or apps that use our services.

Error reports (Sentry)

On webchirp.org and codeplug.org the app reports errors to Sentry, a service run by Functional Software, Inc. that processes the data for us as a service provider. The data is stored in Sentry's European Union region, in Germany. Copies of WebCHIRP hosted anywhere else do not load it.

Sentry deletes reports after at most 90 days. See Sentry's privacy policy.

Location

WebCHIRP never reads your location in the background and never stores it. A position is used only by the repeater query (the przemienniki.net, RepeaterBook, IRTS and RSGB buttons above the channel grid), to find repeaters near it. You give the query a position in one of these ways:

Where the position goes:

api.webchirp.org keeps request logs, which include your IP address and the query with its coordinates, for 30 days and then deletes them. The position you set stays in the open page's memory so the form remembers it, and is forgotten when the page is closed. Google Analytics records only whether a query had a position, never the position, and error reports have coordinates and locators removed.

Bot check for RepeaterBook searches (Cloudflare Turnstile)

api.webchirp.org answers RepeaterBook searches only from a browser that passes a bot check. When you open the RepeaterBook query, the app loads Cloudflare Turnstile from challenges.cloudflare.com. Turnstile checks your browser to tell a person from a bot, and occasionally asks you to tick a box. To do that, Cloudflare, Inc. receives your IP address and information about your browser and device. Each RepeaterBook search then carries a single-use token from Turnstile to api.webchirp.org, which checks it with Cloudflare. A page that never opens the RepeaterBook query never contacts Cloudflare, and the other directories need no check. See Cloudflare's Turnstile Privacy Addendum.

What stays on your device

You can remove all of it by clearing webchirp.org's site data in your browser. The Android app runs inside your browser (usually Chrome), so on Android clear the site data for webchirp.org in that browser's settings.

Bug reports

The Report Bug button opens a new issue form on GitHub in a new tab, filled in with the selected radio's make and model, the USB vendor and product IDs of the last cable connected, your browser's user agent, the CHIRP version, and the last 40 or so lines of the Debug Output panel, which can include channel data, frequencies and radio traffic. These details travel in the form's web address, so GitHub receives them as soon as you press the button, even if you then close the form without submitting it. Nothing is published until you submit the form, which needs a GitHub account. Submitted issues are public: remove anything you do not want to publish before submitting, or email us to have an issue removed. GitHub's privacy statement applies to everything the button sends it.

Hosting and downloads

Device permissions

Refusing either permission leaves the rest of the app working.

How data is protected

Every connection the app makes, to its own website and API and to every service named here, uses HTTPS, so data is encrypted in transit. There are no accounts, so there are no passwords to leak. Error reports are cleaned on your device before they leave it, and the code that does it is public.

What we do not do

How long data is kept

Children

WebCHIRP is a tool for radio operators and is not directed at children under 13. We do not knowingly collect data from children. If you believe a child has sent us data, email us and we will delete it.

Your choices and deleting your data

Changes to this policy

When this policy changes, the date at the top changes with it. Every past version is public in the page's history on GitHub.

Contact

HF2J, privacy@webchirp.org