Docs/Earn free credits

Earn free credits

"Earn free credits" is the sidebar page where a photographer finds and shares their personal invite link, and tracks the credits it has earned so far. Every account has one: it shows the invite link, an editable referral code/handle, milestone progress toward bonus tiers, and a "Friends joined" table listing who signed up through the link and whether their reward has landed yet. It only displays the existing signup-time referral reward — it does not itself grant or move credits.

How to use it

  1. 1Open Earn free credits in the sidebar:
  2. 2Copy your invite link from the "Your invite link" hero with Copy link, and share it with the photographer you want to…: invite.
  3. 3Optionally personalize the link: click ✎ Edit next to "Your code", type a new handle, and Save — old links keep working after the change.
  4. 4Check progress under "Your progress": how many friends have joined, the reward band you're currently in, and how far you are from the next milestone bonus.
  5. 5Check the Friends joined table for who joined, when, and what each earned you: A friend who has signed up but not yet run their first analysis shows as Pending; the reward lands automatically once they do.
  6. 6A compact "next milestone" badge can also appear under the sidebar entry itself, summarizing the same progress at a…: glance.

Limits and known behaviour

  • A friend only counts as credited after their first analysis run — under this first-execution attribution, a friend who has only signed up is shown as Pending, not as an error or a zero reward.
  • Editing the referral code/handle requires a valid format (the UI enforces lowercase letters, numbers and hyphens, minimum length); an invalid or already-used handle is rejected with an inline message, and the previous link keeps working until a valid change is saved.
  • The page requires network + an authenticated session (referral:get calls a Supabase Edge Function); if the request fails, the page shows a "could not load your invite link" message instead of data — nothing is cached for offline use.
  • The "Follow on Instagram", "Share a post" and "Collaborate & earn" quests shown on the page are placeholders ("Soon") and are not yet functional.
  • This page is distinct from the post-analysis satisfaction check-in modal (a related but separate, admin-controlled feature — see "For developers"): the sidebar page itself is not gated and is always available.