SkipperCast

Privacy notice

Draft dated October 11, 2026.

In short

Notice at collection

This section is our notice at collection under the California Consumer Privacy Act (CCPA). It lists the personal information SkipperCast collects, why, whether it is sold or shared, and how long it is kept.

What we store (only when you are signed in) Why How long
Account identifier supplied by the sign-in provider Links your saved records to you. Your email address is not stored. Kept with your records; removed when you delete them.
Trips: area, forecast point, target species, date, hours, wind/gust/sea limits, latest assessment Check the forecast for your trip and send alerts. Deleted 90 days after the trip date, or when you delete the trip.
Alert events: the alert text, time and delivery status Show alert history and avoid duplicate notifications. Deleted 90 days after the alert was created, or with its trip.
Delivery receipts: which device an alert was sent to, when, and the push service’s response code Avoid resending and detect expired devices. Deleted with their alert (90 days).
Push subscriptions: your browser’s push endpoint and encryption keys Deliver notifications to up to five devices. Until you turn notifications off, the push service reports the device expired, or you delete your data.
Comfort feedback: area, time, 1–10 rating, trip phase, and the wind, sea, swell period, heading and forecast point you entered Calibrate boat-comfort estimates. Deleted 365 days after the rating, or when you delete your data.
Request counters: a one-way hash of your identifier plus a time window, and a count Rate limits (30 requests a minute; 20 boat lookups a day). Removed after they expire: about two minutes for the per-minute counter, two days for the daily lookup counter.

Expired records are removed by a scheduled cleanup job, so deletion can lag the dates above by a short time.

Sale and sharing. We do not sell personal information and do not share it for cross-context behavioral advertising. We have not done so in the past 12 months.

Sensitive information. We do not collect sensitive personal information as defined by the CCPA.

AI boat lookup

The boat profile is saved only on your device. If you choose “look up”, the boat description you type (for example “Parker 2320 SL 2019”, up to 120 characters) is sent to Anthropic, whose Claude model searches the web for the builder’s specifications. Your account identifier is not sent. The result is cached by our hosting provider for up to 30 days, keyed by the description, so the same lookup is not repeated. Do not type personal information into the boat field.

Text Advisor (texts, web chat and Instagram)

The Text Advisor answers fishing questions by text message, in a web chat on this site, and by Instagram direct message. Skippers also use it to send catch reports and photos. It is being tested and is not yet open to the public; this section describes what the current code does.

What we store Why How long
Your phone number, as a one-way keyed hash (to recognise you) and an encrypted copy (decrypted only to send you a reply) Reply to you and keep one conversation per number. The number is never stored in plain text, shown to our team or written to logs. Until you erase your data.
For the web chat: a random identifier in a cookie (sc_adv, 90 days); we store only a hash of it Keep your chat together between visits. Until you erase your data. A web chat never linked to a phone number is deleted with everything in it 90 days after its last message.
For Instagram: the Instagram-scoped id Meta gives us for you (not your username or profile) Reply to your direct message or comment. Until you erase your data.
The messages you send and our replies, with their times; what you tell us to remember (the name you want to be called, your home port, the fish you target, your language) Answer you and keep the conversation in context. Message text: 180 days, then deleted (the time and the topic we recorded stay, for counts). What you tell us to remember: until you erase your data.
Instagram comments on our posts, only when they start with one of our keywords (RIG, REPORT, ID, BOATS, or the Spanish words) or, if we turn on public answers, ask a question Send one private reply with a link, or one answer under the comment. Other comments are not stored. The comment text: 180 days, then deleted, or sooner if you erase your data.
Photos and videos you send Identify fish and read count boards. Location and camera details are removed from photos when they reach SkipperCast's storage, and from videos before anyone reviews them (the relay's copies, below, keep them for up to 30 days). Photos stay private unless a skipper has agreed to posting or you agree to share yours with credit, and our team approves it. 90 days, then deleted, unless the photo was approved for posting or posted, or is the count board of a published report; those stay until you erase your data. Photos already posted to our Instagram or Facebook stay there until removed.
For skippers: the boat's name, port, landing, Instagram handle and booking link, catch reports, and when photo consent was given or withdrawn Publish the boat's reports and page, and credit the boat in posts. Published reports stay as the boat's record; erasing your data removes your contact from them.
Daily counters of messages per contact, and for the web chat per internet address (kept only as a keyed hash, never the address) Limit how many messages and AI answers one person can use a day, and how many texts we send to a number that has not texted us. The counters reset each day; old ones are removed within 8 days.
Copies on our message relay: texts and iMessages reach us through an iPhone and a Mac that our team keeps, which hold the conversation and photos and videos as they arrived (before location and camera details are removed) Receive and send texts. They are not copied to iCloud or backed up. Up to 30 days, then deleted automatically on the devices; copies the relay software keeps of photos and videos are deleted weekly once they are more than 7 days old. When you erase your data, we also delete your conversation from the relay by hand.

Automatic deletion. Once a week we delete message text older than 180 days; photos and videos older than 90 days unless they were approved for posting, posted, or are the count board of a published report; our team's review notes 90 days after the decision; web chats never linked to a phone number 90 days after their last message; and copies made by SEND ME MY DATA after 7 days. Erasing your data removes all of it from SkipperCast's storage at once. Our message relay (the iPhone and Mac above) keeps texts, photos and videos for up to 30 days; when you erase your data we delete your conversation there by hand too.

Who else handles it. To write answers and identify fish, the text of your message, the recent conversation and your photos are sent to Anthropic. Texts travel through Apple (iMessage) or your mobile carrier, and through Twilio if we move our number to it. Instagram messages and comments travel through Meta, which keeps its own copy under its own policy. Everything we store is held with Cloudflare. Our usage statistics count messages, topics and response times only, never message text or numbers.

We message you only in reply. We do not send promotions. Besides replies we send only service messages: an invitation when a skipper invites you to their crew (you join only if you reply YES; NO stops that boat inviting you for 30 days) or our team invites a skipper, a one-time code when you ask to link the web chat to your number, and updates to a skipper about their boat (its verification, a photo that was posted). On Instagram we can only reply within 24 hours of your last message, and send one private reply per comment.

Your controls. Send these words as a message, by text or Instagram DM:

Stored on your device

Your chosen home port, boat profile and export drafts are kept in your browser’s local storage, and recent forecasts in session storage. They never leave your device unless you export them. If you use “find a nearby port” or the boat-position tool, your location is used in the browser only and is not sent to SkipperCast.

Service providers and data sources

Usage statistics and cookies

The map, the home page and the Text Advisor pages send us a small set of anonymous usage statistics, so we can see which steps of a visit people reach and which releases break. They go to our own Cloudflare Workers Analytics Engine dataset, not to an analytics company.

Not collected: no cookies, local storage, or user, session or device identifier; no full web addresses, positions or boat details. We do not collect form entries; error messages are scrubbed as above. Your IP address is not stored with the statistics; our server uses it only to limit how often it accepts them, as on every public request.

How long it is kept. Cloudflare keeps these records for three months, the Analytics Engine default, and we set no longer period. A daily operations report copies the last day’s step counts and the ten most reported errors (scrubbed message, script file name, line, kind and build) into the run summary of a GitHub Actions job in our public code repository, where anyone can read them and GitHub keeps them under its own retention for workflow runs.

Do Not Track and Global Privacy Control. If your browser sends either signal, the pages send no usage statistics or error reports at all.

There are no advertising or third-party tracking scripts, and SkipperCast sets no tracking cookies. If what we collect changes, this notice will be updated first.

Your choices and rights

California residents have the right to know, access, correct and delete their personal information, and not to be discriminated against for exercising these rights. Anyone can use the controls below.

Children

SkipperCast is for adults 18 and over and is not directed to children. We do not knowingly collect information from anyone under 18.

Changes and contact

We will update the date above when this notice changes. Placeholder: operator name and privacy contact address to be added. Until then, contact us through the project issue tracker (do not post personal information there).

Terms of use · Licences & attributions · Sources & methods