Fishbowl Focus is a task tracker where every task is a fish. If you do not sign in, your fish never leave your browser. If you sign in with Google, your fish are saved to a database so they show up on your other devices.
There is no analytics, no tracking, no advertising, and nothing is sold or shared with anyone. Nobody is watching what you type.
Everything stays on your own computer. Your tanks, your fish, your notes and
your finished-fish archive are saved in your browser's local storage under the
name fishbowl-focus-v1.
None of it is sent anywhere. The app has no code that uploads anything while you are signed out. Clearing your browser data deletes it, and nobody but you has a copy.
Signing in is Google only, handled by Supabase. Supabase keeps a login record for you so it can recognise you next time. The app itself only ever reads two things out of that record: your email address, which it shows in the account menu, and your name, so the button can say hello with your first name.
Once you are signed in, this is exactly what gets saved to the database — nothing more:
Your notes are stored as you typed them. A fish title can be 160 characters and a note can be 2000, and whatever you put in there is what is saved. If you would not want it in a database, do not type it into a fish.
Your browser also opens a live connection so that a change you make on your phone appears on your laptop. That connection only ever carries your own rows.
The database has Row Level Security switched on for both tables. Every row carries the id of the account that owns it, and the rule is simply that you can only read or change rows whose owner id matches the account you signed in with. This is enforced by the database itself, not by the app, so a bug in the app cannot hand somebody else's fish to you.
Signed-out visitors have no database access at all. The permission to read and write those tables is granted only to signed-in users.
When you are signed in, the account menu has an Export my data button. It downloads a JSON file containing everything the app is holding for you: your tanks, your fish, their notes and timers, and your ocean archive. It is a plain text file you can open, keep, or move somewhere else.
The export button lives in the account menu, so it is only reachable while signed in. Signed out, your data is already only on your own machine.
Sign out removes your account's copy of the aquarium from that browser and ends the session, so your fish are not left sitting on a shared machine. Your rows stay in the database, waiting for the next time you sign in.
Delete account (in the account menu, click twice to confirm) permanently deletes every tank row and every fish row belonging to you, clears that browser's copy, and signs you out.
Four other companies are involved in running this. That is the whole list:
fonts.googleapis.com and
fonts.gstatic.com) supplies the two pixel typefaces the page is
set in.cdn.jsdelivr.net) supplies the
Supabase sign-in library.Fetching a file from any of those means your device's IP address and browser version reach them, the same as with any web page. None of them are sent your fish, your notes, or anything else about how you use the app. There are no other third-party scripts on the page — no images, no embeds, no frames, no tag managers.
Those four addresses are also the only ones the page is allowed to contact. The server sends a Content Security Policy that blocks everything else, so even if the page were tampered with, it could not send your data somewhere new.
Ask anything: what is stored, a copy of it, or to have it all deleted.
TODO for the owner: replace this with a real contact email
address before publishing. — your-email@example.com
If what the app does with your data changes, this page gets updated to match on the same day. It describes what the app does today, not what is planned.
Last updated: 6 September 2026