Cookie Policy

Phases

Last updated July 16, 2026

This page lists everything Phases stores in your browser: every cookie, plus the local storage the app itself uses, and why each one exists. There is no advertising and nothing here is sold or shared.

Strictly necessary (always on)

  • Session cookie (better-auth.session_token): keeps you signed in. HttpOnly; created when you sign in, removed when you sign out. The app cannot work without it, so it does not require consent.
  • Consent cookie (phases_consent): remembers whether you accepted or declined analytics, so we do not ask again. Stored for 180 days, mirrored in localStorage (phases:consent).

Analytics (only if you accept)

  • We use PostHog to understand which features get used (page views, button clicks, page-load performance). It stores its state in your browser under keys beginning with ph_.
  • Nothing is captured until you accept the consent banner. If you decline, or never answer, analytics stays fully off: no events, no analytics cookies, no analytics localStorage.
  • Session replay is deliberately disabled, and your photos are never part of any analytics event. You can switch analytics off at any time in Data & privacy settings.

On-device app storage (not cookies)

  • Photo cache (IndexedDB): your full-resolution photos and cached face landmarks live in your browser's IndexedDB so timelapses render on-device. They never leave your device unless you connect Google Drive backup. See the Privacy Policy for the full story.
  • Preferences (localStorage): keys beginning with phases: store your timelapse defaults (frame rate, aspect ratio, export format, date overlay) and your consent choice.

Changing your mind

Toggle analytics on or off any time at phasesapp.vercel.app/data-settings. Clearing your browser's site data for phasesapp.vercel.app removes every item listed on this page (including your locally cached photos, so back them up to Google Drive first if you want to keep them).

Contact

Questions? Email ainewstweets@gmail.com.