Called it.

Privacy, plainly.

The short version: we store what the goal page shows, nothing more.

No accounts. Actually none.

There is no signup, no login, no password, no email. The name and emoji you pick live in your browser's local storage, on your device. Clear your browser and you're a mystery friend again — that's a feature.

What we store

When you or your friends use a goal page, we keep what it needs to work: the claim text, deadline, category, the names people typed, comments, emoji reactions, jury votes, any progress pic the creator uploads, and a daily view counter per goal.

Live 'watching' presence and the floating reactions are ephemeral — they pass through and are never written to a database.

Who can see it

Anyone with a goal's link can see everything on that page. That's the whole product — the link is the invite. Links are long random strings, so goals can't be guessed or browsed, but treat the link like the group chat it lives in.

What we don't do

No ads, no trackers, no analytics scripts, no selling anything to anyone. The view counter is a number on the page, not a profile of you.

Catching crashes

To fix what breaks, we use Sentry (error monitoring). When something errors, it records the error and a stack trace — never your name, your comments, or the goal's link; those are stripped before anything leaves. It's crash reports, not analytics: still no ads, no trackers, no profile of you.

Where it lives

Data is hosted on Supabase (Postgres + storage). Uploaded pics are resized on your device before upload and stored in a public bucket — don't upload anything you wouldn't drop in the group chat.

Want something gone?

Since there are no accounts, there's no self-serve delete yet. Reach out through the project's GitHub and we'll remove a goal or an image.