← Back

Laeli Privacy Policy

Effective date: TBD  ·  Last updated: TBD

⚠️ DRAFT — this is a placeholder version. Replace with the legally reviewed version before public TestFlight or App Store submission.

Who we are

Laeli is a dog-training coaching app developed by [Legal Entity Name], contactable at [email protected].

What data we collect

DataSourcePurposeStoredShared with
Owner name (optional) User input in Profile Personalize coaching responses ("Hi Aurelien") Locally on device + Supabase Auth profile OpenAI (in coaching prompts only, not for training)
Dog profile (name, breed, age, weight, energy, training level, goals, behavior issues) User input in onboarding + Profile Generate the personalized training plan and coaching replies Locally on device + Supabase (when logged in) OpenAI (in coaching prompts only)
Journal entries (training wins, accidents, behavior moments, notes) User input in Journal / Today quick-log Coaching personalization, pattern detection Locally on device + Supabase OpenAI (recent entries only, in coaching prompts)
Chat history with Laeli AI App usage Coaching context (last few turns) + cross-session memory Locally on device + Supabase OpenAI (recent turns + rolling memory snapshots)
Today's training-plan tasks and completion counts Generated by the app from your dog's profile and goals Let the AI coach see what you were asked to do today and how much you've already finished, so its reply matches your actual progress Locally on device + Supabase OpenAI (in coaching prompts only)
Journal pattern summaries (e.g. "evening biting cluster x3 in last 7 days") Computed by Laeli from your recent journal entries Coaching personalization — gives the AI coach a short summary of behavior patterns so it can address them directly Locally on device + Supabase OpenAI (in coaching prompts only)
Safety-routing signals (category labels like "blood or bleeding", "child or baby safety") Computed automatically each time you message the coach, from the words in your recent journal entries and your message Decide whether the coach should respond normally, add a vet-referral note, or escalate to a safety-first reply Locally on device + Supabase OpenAI (in coaching prompts only)
Unresolved red-flag log excerpts (title, log ID, timestamp — last 48 hours only) A red-flag log you wrote in the last 48 hours (e.g. a bite, broken skin, or vet-relevant event) Make sure the coach sees recent safety events and follows up on them instead of moving on Locally on device + Supabase OpenAI (in coaching prompts only)
Care reminders (medication, vet appointments, etc.) User input in Care tab Scheduled local notifications Locally on device + Supabase None
Anonymous user ID (Supabase Auth) Generated on first launch Authentication, server-side rate limiting Supabase Auth None
Crash / error reports Automatic when the app crashes Bug fixing Sentry Sentry (PII-safe payloads — see "Crash reporting (Sentry)")
Server-side function logs (operational logs from our coaching backend) Automatic when the coaching backend processes a request Debugging, abuse prevention, rate-limit enforcement Supabase Logs (our backend host) None — internal to Laeli (see "Server-side logs")
Daily / monthly usage counts Automatic Subscription tier enforcement Locally on device + Supabase None

What we do NOT collect

How we use OpenAI

Coaching replies are generated by OpenAI's gpt-4o-mini model. On each coaching request we send:

OpenAI does NOT train on this data (per their API terms for paid customers). We do not log requests beyond what's needed for billing and abuse prevention.

Crash reporting (Sentry)

We use Sentry to capture crashes and errors so we can fix bugs. Reports include technical context (stack traces, app version, device model, OS version) and a structured event payload. We run user-input and log strings through a redaction layer before they reach Sentry, so journal text, chat messages, owner name, dog name, email addresses, and similar fields are replaced with placeholders (e.g. [redacted-email]) before the report leaves your device. Reports are stored in Sentry's EU/US infrastructure under our project and retained per Sentry's standard retention (90 days by default for our plan).

Server-side logs

Our coaching backend (hosted on Supabase Edge Functions) writes operational logs while it processes a request — things like "request received", "rate limit hit", "model returned unexpected format". These logs may incidentally contain short excerpts of model output or user input (for example, the first 200 characters of an AI reply when it fails to parse). We run a redaction layer over these log lines so known PII fields (names, emails, IDs, free-text journal/chat content) are replaced with placeholders before they are written. Logs are retained per Supabase's standard log retention for our plan and are only accessible to Laeli engineers for debugging and abuse prevention.

Retention and deletion

Children

Laeli is not designed for users under 13. We do not knowingly collect data from children. If you are a parent who believes your child has used Laeli, email [email protected] and we'll delete the account.

Your rights

You can at any time:

If you are in the EU / UK, you have additional GDPR rights including the right to object, restrict processing, and lodge a complaint with your local data protection authority.

Changes to this policy

We will notify you in the app and via email if we materially change how we collect or use your data. Continued use of Laeli after such notice constitutes acceptance.

Contact

[email protected]