Stillwater

Privacy Policy

Last updated 30 August 2026 · Stillwater is a personal project by one person in Omaha, Nebraska, not a company.

The short version

1. What Stillwater is

Stillwater is a fishing-intelligence app for eastern Nebraska. It scores the likely bite from solunar tables, live weather, and your own logbook, and it keeps a record of your outings. It runs as a single page in your browser, backed by a small number of serverless functions.

2. What is stored, and where

2.1 On your device (always)

Your logbook lives in this browser's localStorage — outings, catches, gear, notes, any coordinates you pinned, and your chosen basecamp. Catch photos taken while signed out are stored in this browser's IndexedDB. None of this is transmitted anywhere until one of the opt-in features below is enabled. Clearing your browser data deletes it.

2.2 In the cloud (only once you sign in)

Stillwater carries your logbook across devices exactly one way: an account. Sign-in is handled by Clerk. Stillwater's own database stores only your opaque Clerk user id, the angler name you choose, and your visibility settings. Stillwater never receives or stores your password, and does not copy your email address into its database.

Earlier versions offered a keyless “sync code” — a passphrase that acted as an anonymous bucket id. It was removed in August 2026. Two identity systems meant two ways to lose a logbook, and a passphrase that quietly became your identity again the moment you signed out. If you have outings saved in a browser, signing in moves them into your account; nothing is uploaded before you do.

Once you are signed in, your outings are copied to a Neon Postgres database hosted in the United States: water name, times, the frozen weather snapshot, your catches and any notes you wrote.

2.3 Photos

Every photo is re-encoded in your browser before it goes anywhere, which strips all EXIF metadata — including the GPS coordinates most phones embed in a picture. Signed out, the photo stays on your device. Signed in, it is uploaded to a private object store operated for Stillwater and the catch stores a link to it. League verification media (photos and weigh-in videos) goes to the same place.

Be aware: that link is a public but unguessable URL. Anyone you give the link to can view the image without signing in, and this remains true whether or not you are on the leaderboard. This is how nearly all photo hosting works; it is written down here so it is not a surprise. Deleting the photo in Stillwater removes the reference; treat any link you have shared as permanently shared.

2.4 What is never stored

No password. No payment details. No contacts, calendar, photo library, or address book. No advertising identifier. No continuous location: Stillwater only ever asks for a single position fix, at the moment you press a location button, and that fix is held in memory and never sent to a Stillwater server.

3. The leaderboard

The leaderboard is off until you turn it on, and turning it off removes your entries from it immediately. While it is on, other people can see, for your best fish:

PublishedNever published
Your chosen angler name · the league you fish for, if any · species · length · weight · whether it was released · the water's name · the date (day only, no time) · the photo, if you attached one Your notes · your catch GPS pins · bait, colour, presentation, rig · depth · trip start and end times · the conditions snapshot · your email or real name · your account id

Your angler name is public and is the only identifier shown. Choose one you are comfortable being seen. A named water plus a precise time can suggest where somebody was standing, which is why the leaderboard publishes a date and not a timestamp.

4. Leagues

A league is a club that runs a competition on Stillwater. Joining one is a deliberate act: you have to be signed in and enter a join code an officer gave you. Everything in this section applies only to leagues you have joined.

4.1 What a league entry contains

A competition entry is separate from your personal logbook. It records the species, the length or weight, the date and time, the waterbody, the measuring tool you registered, the verification photo or video, and optionally precise coordinates and a note.

4.2 Location is split in two, on purpose

Shared with the leagueNever public
The waterbody name — “Lake Zorinsky”. That is what the standings and other members see. The precise coordinates, if you chose to record them. Only league officers and you can see these. They are never shown on a public board, and they only leave the league at all if you switch on Include my precise coordinates in research exports on your member card. That switch is off by default, and turning it off later withholds them from every future export, including entries you already submitted.

4.3 What officers can see and do

Officers of a league you have joined can see your entries in full — including precise coordinates and your verification media — because verifying an entry is the job. They can change an entry's status (verified, flagged, disqualified) and must give a reason, which is recorded. They cannot edit the facts of your entry, and every officer action is written to an append-only audit log. Officers of one league can see nothing belonging to another.

4.4 Entries are immutable

A submitted entry is never rewritten. Correcting one creates a new version; the original stays readable and linked to it. This protects you as much as the competition: if an entry is ever questioned, what you actually submitted still exists. It also means a submitted entry cannot be fully deleted by editing it. Ask an officer, or use the contact below, to have a league record removed.

4.5 Exports

Any officer can export their league's whole record at any time — every entry, every version, the roster and the audit log. This is deliberate: the league owns its competitive record and must not depend on Stillwater continuing to exist. A separate research export, intended for a fisheries agency or university partner, removes angler names entirely and withholds precise coordinates for every member who has not consented.

5. Third parties

Stillwater uses these services. Each one only receives what it needs to do its job.

ServiceWhat it doesWhat it receives
VercelHosting, serverless functions, photo storageStandard web request data (IP address, user agent, URL) in operational logs; your uploaded photos
NeonPostgres databaseYour synced outings, as described in §2.2
ClerkSign-in, sessions, password resetsYour email address and password, held by Clerk under their privacy policy. Stillwater never sees your password.
Open-MeteoWeather and archived reanalysisThe coordinates of the water being forecast — never your logbook, and never your device's position
USGS, NWS, NGPC, RainViewerRiver gauges, weather alerts, waters data, radarPublic lookups only: a gauge id, a region, a map tile
OpenStreetMap / CARTO / EsriMap and aerial tilesWhich map tiles you are viewing (i.e. roughly what part of the map is on screen)
Vercel Web AnalyticsPage-view countsCookieless, aggregate page views. No cross-site tracking, no advertising profile, no personal identifiers.

Stillwater sets no advertising or tracking cookies. Clerk sets a session cookie when you are signed in, which is what keeps you signed in.

6. Children

Stillwater is not directed at children under 13 and accounts are not knowingly created for them. If you believe a child has created one, use the contact below and it will be deleted.

7. Your control over your data

Retention: synced outings are kept until you delete them or your account. There is no separate archive or backup copy kept after deletion beyond the hosting providers' own short-term operational backups.

8. Security

How access is actually enforced — token verification, scope isolation, what the known weaknesses are — is documented in full on the security page, including the parts that are imperfect.

9. Changes

Material changes will move the date at the top of this page. Since the app is a single static file, the honest thing to say is: check this page if you care, because there is no mailing list to notify you.

10. Contact

Questions, deletion requests, or a privacy problem: arothe2007@gmail.com.