LifeCraftLabLifeCraftLab

Legal

Privacy Policy

Effective date: July 4, 2026

中文版隐私政策

This Privacy Policy explains how LifeCraftLab(“we”, “our”, “us”) collects, uses, and protects information when you use our mobile applications and websites, including Nibble (package com.lifecraftlab.nibble), Lái Chuẩn (package com.lifecraftlab.laichuan), Sayly (package com.lifecraftlab.sayly), RepWise (package com.lifecraftlab.repwise), SnapWatch (package com.lifecraftlab.snapwatch), DevLab (package com.lifecraftlab.devlab), LoopArcade (package com.lifecraftlab.looparcade) and WearNav (package com.lifecraftlab.wearnav), and any related services (collectively, the “Services”).

Developer: LifeCraftLab. Support email: contact@lifecraftlab.cc.

We designed our Services to collect as little personal data as possible. Most data created by the app stays on your device.

1. Information we collect

1.1 Information stored locally on your device

The following data is created and stored on your device only. It is not transmitted to our servers (except when you opt in to cross-device sync via Google Sign-In — see §1.4):

Nibble (calorie tracker)

  • Profile inputs: age, gender, height, weight, activity level and calorie goal. Used to compute your BMR / TDEE locally.
  • Diary entries: the foods, portions and meals you log.
  • Weight log: any weight measurements you record over time.
  • Custom foods: any dishes you create yourself.
  • App preferences: language, theme, photo-analysis quota counter.

Lái Chuẩn (traffic sign lookup)

  • Bookmarks & search history: the signs and violations you save or view. Stored in a local SQLite DB.
  • Anonymous device ID: a randomly-generated UUID stored locally and sent on AI-scan requests so the daily quota counter can be bucketed without requiring sign-in. Cannot be linked back to your identity unless you also sign in with Google.
  • App preferences: language, theme, scan-quota counter.

Lái Chuẩn does not collect health or biometric data (no weight, height, age, or fitness inputs).

Sayly (language learning)

  • Learning progress: which sentences you have studied and your spaced-repetition schedule (review dates, streaks). Stored locally.
  • App preferences: your native language, the language you are learning, speech speed, and level filter.

Sayly does not collect health, biometric, location, contacts, camera, or microphone data. The sentence content itself is a static, non-personal data file downloaded from our CDN; audio pronunciation is served as static files and does not involve your voice.

RepWise (workout coach for watch)

  • Fitness profile: body weight, height, age, sex and experience level. Used on-device to suggest starting weights and to estimate calories burned.
  • Workout data: your training program, sessions, exercise weights/sets/reps, swaps and workout history.
  • Heart rate: if your watch has a heart-rate sensor, RepWise reads it only during an active workout to estimate calories. It is processed on-device in real time and is not stored or transmitted.
  • App preferences: language.

RepWise runs entirely on your watch. It requires no account, and none of the above data is sent to our servers or any third party.

SnapWatch (watch camera remote)

  • Pairing code: a 6-digit code stored locally on the phone and watch to link the two apps.
  • Photos: pictures you take are saved onlyin your phone's local gallery (Pictures/SnapWatch). They are never uploaded to us.
  • App preferences: shutter timer and language.

SnapWatch requires no account. It sends the shutter command from the watch to the phone over direct Bluetooth or, optionally, over the Internet. The Internet channel only relays a small “shutter” signal (using the pairing code as a room name) via Supabase Realtime — it never carries your photos or any personal data, and nothing is stored on our servers.

WearNav (navigation mirror to watch)

  • Notification access: WearNav uses the Android notification-access permission to read only the Google Maps turn-by-turn notification on your phone (next maneuver, distance and street name). It does not read notifications from any other app.
  • Pairing code: a 6-digit code stored locally on the phone and watch to link the two apps.

WearNav requires no account and stores no location. It forwards the current turn direction, distance and street from the phone to your paired watch over direct Bluetooth or, optionally, over the Internet. The Internet channel only relays this small navigation snippet (using the pairing code as a room name) via Supabase Realtime — it never carries your location history or any personal data, and nothing is stored on our servers.

LoopArcade (mini-game hub for watch)

  • Game data: high scores, per-game daily play counts, unlock status and coach-mark flags. Stored only on the watch.
  • App preferences: language.

LoopArcade runs entirely offline on your watch. It requires no account and no Internet, uses only the Vibrate permission for haptics, and none of the above data ever leaves your device.

1.2 Information processed by third-party AI when you use photo analysis

Both Nibble and Lái Chuẩn offer an optional “Analyze photo” / “Scan sign” feature. When you take or upload a photo for analysis, the image is sent to Google's Gemini API for the sole purpose of identifying the subject (a dish for Nibble; a traffic sign for Lái Chuẩn) and returning structured data about it. We do not store this image on our servers; Google processes it according to Google's Gemini API Additional Terms of Service and the Google Privacy Policy.

Lái Chuẩn additionally sends your search query text (only when you use semantic search) to Voyage AI for text- embedding generation, used to rank matching signs by meaning. No personally-identifiable data is included with the query. See the Voyage AI privacy policy.

Photo analysis (and semantic search in Lái Chuẩn) is opt-in: nothing is sent to any third party unless you explicitly trigger the feature.

Sayly — “Practice with AI”. When you tap this button, Sayly opens a third-party AI chat app that you choose (Google Gemini or ChatGPT) and hands it a role-play prompt about the current topic. Only that topic prompt is shared — no personal data, account info, or learning history is included. The AI app you open is operated independently and governed by its own privacy policy (Gemini / ChatGPT). This feature is opt-in and requires the respective app to be installed.

1.3 Information collected by advertising

Mobile apps (Android / iOS)

Our mobile apps are supported by ads served through Google AdMob. AdMob may collect a limited set of data (such as the device's advertising identifier, IP address, ad interaction events, and device characteristics) to deliver and measure ads. This data is controlled by Google. See How Google uses information from sites or apps that use our services and the AdMob privacy and security information. You can reset or limit ad personalization at any time: Settings → Google → Ads.

If you are located in the European Economic Area (EEA), the United Kingdom, or Switzerland, we ask for your consent through Google's consent form (Google's User Messaging Platform) before any personalized ads are shown. If you decline, you will still see non-personalized (contextual) ads so the app stays free. We also tag our ad requests so that only ads rated suitable for teen audiences or below are served. You can change your advertising choices at any time via Settings → Google → Ads on your device.

The version of our apps distributed on the Huawei AppGallery serves ads through Huawei Petal Ads (HMS Ads Kit)instead of Google AdMob, because Huawei devices do not include Google Mobile Services. Petal Ads may collect the device's OAID (Open Advertising ID) and basic device and network information to deliver and measure ads. This data is controlled by Huawei. You can reset the OAID at any time via Settings → Privacy → Ads & privacy. See Huawei's privacy policy.

Web (nibble.lifecraftlab.cc, laichuan.lifecraftlab.cc)

Some web apps show optional partner-offer links (affiliate promotions). These appear only on the web, never inside the mobile apps, and nothing loads a third-party display or pop-under ad network.

When you click a partner offer to unlock additional AI uses (photo scan extra quota, weekly insights bonus), that click opens the partner's page in a new tab and may set cookies controlled by that partner. The partner operates independently of LifeCraftLab; we receive only aggregate revenue reports, never the raw data they collect.

Your choices: use a browser ad-blocker, decline non- essential cookies in our consent banner (where shown), or simply skip clicking the partner offer — the core app remains free and fully usable without it.

1.4 Optional account (Google Sign-In)

If you choose to sign in with Google, we receive your Google account email and basic profile (name, profile picture URL) solely to identify your account and, in a future release, to sync your data across devices. Sign-in is optional; the app is fully usable without an account.

1.5 Permissions requested by the app

  • Camera — only when you tap the photo-analysis button.
  • Photos / Media — only to let you pick an image for analysis.
  • Internet — to call the Gemini AI service (only when you use photo analysis) and to serve ads.

Sayly requests only Internet(to download the sentence set and serve ads) and, on Android, permission to open the AI chat app you pick for “Practice with AI”. It does not request camera, photos, microphone, or location.

SnapWatch requests Camera (to take the photo when triggered from the watch), Bluetooth / Nearby devices (to connect the phone and watch directly), and Internet (for the optional online shutter channel and to serve ads). It does not use location (the Bluetooth scan permission is flagged neverForLocation), microphone, or contacts, and requires no account.

LoopArcade requests only Vibrate (for in-game haptic feedback). It does not request Internet, location, contacts, camera, microphone, or health sensors, and requires no account.

WearNav requests Notification access (to read the Google Maps navigation notification on the phone), Bluetooth / Nearby devices (to send the turn directions to the paired watch directly), and Internet (for the optional online channel). On the watch it requests Vibrate (to alert you before a turn). It does not use location (the Bluetooth scan permission is flagged neverForLocation), camera, microphone, or contacts, and requires no account.

2. How we use information

  • Provide the core functionality of the app (calorie tracking, history, trends).
  • Compute personalised calorie and macro targets on-device.
  • Identify dishes from photos via the Gemini API when you opt in.
  • Display ads through Google AdMob to fund development.
  • Diagnose crashes and fix bugs (we may use anonymous error logs from Google Play Console).

We do not sell your data. We do not share your diary, weight log, or profile with advertisers or other third parties.

3. Children's privacy

The Services are intended for users aged 13 and older. We do not knowingly collect personal information from children under 13. If you believe a child under 13 has provided us with personal information, please contact us at contact@lifecraftlab.cc and we will delete the data.

4. Data retention

Data stored locally remains on your device until you delete the data from the app or uninstall the app.

If you signed in with Google, your account record (email + display name) is kept until you request deletion via /policy/data-deletion or revoke access in your Google Account settings.

5. Your rights

Depending on your jurisdiction, you may have the right to:

  • Access the personal data we hold about you.
  • Request correction of inaccurate data.
  • Request deletion of your data (see Data Deletion).
  • Object to or restrict certain processing.
  • Withdraw consent at any time (e.g., stop using photo analysis or sign out).

To exercise these rights, email contact@lifecraftlab.cc.

6. Security

We use industry-standard technical and organisational measures to protect data in transit (HTTPS) and at rest. No system can be 100% secure; we cannot guarantee absolute security, but we work to minimise risk and notify users of material incidents where required by law.

7. International transfers

When you use photo analysis or ads, your data may be processed by Google on infrastructure outside your country. Google is responsible for compliance with applicable data-transfer laws in those cases.

8. Third-party services we rely on

  • Google Gemini API — optional photo analysis + weekly insights (Nibble) + sign-scan (Lái Chuẩn) (privacy).
  • Google Gemini / ChatGPT apps— the third-party AI chat app you optionally open from Sayly's “Practice with AI” (only a topic prompt is shared) (Gemini / ChatGPT).
  • Voyage AI — optional semantic-search query embedding (Lái Chuẩn only) (privacy).
  • Google AdMob — advertising in mobile apps (privacy).
  • Huawei Petal Ads (HMS Ads Kit) — advertising in the Huawei AppGallery version of mobile apps; may use the OAID advertising identifier (privacy).
  • Google Analytics — aggregate website-traffic statistics on the web only (page views, referrers), with IP anonymization enabled (privacy).
  • Supabase — auth + cross-device sync when you sign in (privacy).
  • Google Sign-In — optional account (privacy).
  • Vercel — hosting (privacy). Standard server logs (IP, User-Agent, request path) retained for up to 30 days for security and abuse prevention.
  • Google Play Services — install integrity, crash reporting (privacy).

9. Regional disclosures (EEA / UK & United States)

EEA / UK / Switzerland. Where the GDPR (or UK GDPR) applies, our legal bases for processing are: your consent (photo analysis, personalized ads, optional Google Sign-In); legitimate interests (keeping the Services secure, preventing abuse, and showing non-personalized ads to fund the free app); and performance of a contract (providing the features you request). You may withdraw consent at any time without affecting the lawfulness of prior processing.

United States.We do not “sell” your personal information for money. Showing personalized ads through AdMob may be considered “sharing” for cross-context behavioral advertising under laws such as the California CPRA. Residents of states with applicable privacy laws can opt out of personalized ads through the consent prompt (where shown) or via Settings → Google → Ads on the device, and can exercise access / deletion rights as described in §5.

10. Changes to this policy

We may update this policy from time to time. We will update the “Effective date” at the top of this page and, when changes are material, notify you in-app.

11. Contact

Questions or complaints? Reach us at contact@lifecraftlab.cc.