Skip to content

Privacy

What we store, and what we do not

Finnfisk is built to work without an account. If all you do is read, we store nothing about you at all.

Who is responsible

Finnfisk is a personal project, not a company. Questions about privacy, access or deletion go to bjarne@oever.li.

Without an account

Your catch log, your own spots and your favourites live in the browser’s storage on your device. They are not sent anywhere, and we cannot see them. Clear your browser data and they are gone, for you too.

Your position is read in the browser when you ask for it, and used there. It does not leave the device, with one exception: to fetch the weather it is first rounded to two decimals, about 1.1 km, before it goes to Open-Meteo. The weather model’s grid is around 11 km, so the rounding costs no precision.

With an account

An account adds sync on top. Then we store:

  • Your email address, from signing in. It is what makes a magic link and Google sign-in land on the same account.
  • Nickname, if you set one. It is optional, and it is public the moment you post a catch.
  • The rows your device syncs: catches with coordinates, your own spots and favourites. The server stores the content without reading it.
  • Sessions: which devices are signed in, so you can sign them out from /konto.

The exact catch coordinate is the most sensitive thing this app holds. It lives on your account, and it never leaves it unless you decide it should.

When you share something

There are two things you can choose to publish: a shared trip, which is a link you hand to someone, and an entry on the wall of fish, which is a public page. Both round the position before anything leaves the device.

  • Shared trip: 0.01 degrees, about 1.1 km. “Exact positions” is a deliberate choice per publication, and is never remembered for the next one.
  • The wall of fish: 0.002 degrees, about 220 metres. There is no exact option here. On a page anyone can open, a real position is a spot given away for good.
  • Your own place names are never shared. If a catch took its name from one of your own pins, the name is not published.

Photos are shrunk in the browser before upload, and that process discards every EXIF tag, the GPS position included. The original file never leaves the device. The bucket the photos live in is private: each one is served through the app, which decides per request whether it is public.

Reports

If you report an entry on the wall, we store which entry, the reason you picked, your note if you wrote one, and which account filed it. Whoever moderates sees all of that. We store no IP address: requiring an account to report is exactly what lets us avoid it.

Who else is involved

  • Hetzner Object Storage stores the catch photos, in a private bucket.
  • Mailjet sends the sign-in links.
  • Google provides Google sign-in, and Google Analytics if you accepted it.
  • Open-Meteo provides the weather, from the rounded coordinate.
  • Kartverket serves the map tiles.

Cookies

If you are signed in there is a session cookie. It is what makes signing in work, and cannot be turned off without signing out.

Google Analytics loads only if you accept. Nothing is fetched from Google before you press yes, the IP is anonymised, and the address reported never includes the query string: a shared map link carries a position, and that should not end up at Google.

Our own statistics

Alongside Google Analytics we keep our own, plain visit statistics. It runs for everyone, with no consent step, and the reason is that it stores nothing about you.

What a page visit records: which page, when, which site you came from (the host name only, never the whole address), and whether the screen is a phone, a tablet or a monitor. No cookies, and nothing stored in your browser.

Your IP address is not stored. It is turned into a code using a secret value that is replaced every night, and the old value is deleted. So two visits on the same day can be recognised as one, and nobody can connect your visit today to your visit yesterday. That includes us.

The raw rows are kept for 180 days. After that only daily totals remain: how many pages were read, not who read them.

We also count search robots and AI assistants that fetch our pages. There is no person behind those, so only the robot’s name is stored.

If your browser sends Global Privacy Control, we do not count you.

For how long

Until you delete it. Delete your account from /konto and it is gone from the live database immediately, along with your catches, spots, trips and photos.

One thing is worth saying plainly: we back the database up nightly and keep the last 14 copies. A deleted account can therefore remain in a copy until it rotates out. “Deleted” here means “gone within 14 days”, not “gone from every trace instantly”.

Your rights

You can see, export and delete everything we hold about you, and you do not need to ask us first:

  • Use “Download my data” on /konto to get everything in machine-readable form.
  • “Delete account” in the same place deletes it.
  • Corrections and objections go to bjarne@oever.li.

If you believe we handle your data wrongly, you can complain to the Norwegian Data Protection Authority (Datatilsynet).

The terms of use, and the rules for the wall of fish, are in the terms.