Policy date: 21 October 2026. Website operator details: Not yet configured. Privacy contact: Not yet configured.
1. Information you provide
Account and sign-in. The app uses Google Sign-In and Supabase Auth. Google returns an identity token to the app, which exchanges it with Supabase. Supabase stores the account authentication record. The app persists its Supabase session on the device using Expo SecureStore.
Skin profile. Your age range, skin type, sensitivity, selected concerns, goals, preferences, and onboarding completion status are saved in the Supabase user_profiles table and associated with your authenticated account. Onboarding drafts are saved in SecureStore on the device.
My Shelf. Shelf entries are account-owned Supabase rows that link your user ID to a catalog product ID and may contain a short personal note. The product catalog is read-only to app users.
2. Data stored on your device
The current implementation stores the following data in local SQLite databases and device files, scoped by the signed-in user ID where applicable:
- Routine plans, steps, completion logs, and sync state. Routine data uses SQLite locally as its working source and syncs to Supabase to restore between app installs or devices.
- Daily Skin Check ratings and progress photos. Photo files are cropped/compressed and stored in the app’s local documents area. Check-in history is retained for up to 30 days and pruned locally.
- Water tracking entries and goal preferences.
- Reminder preferences and locally scheduled reminders.
- Skin AI chat history, limited to the most recent 80 messages. Photo file paths are omitted from stored chat history.
Uninstalling the app may remove locally stored data. Routine backups and account-linked information may remain in Supabase until a functioning account/data deletion process is provided.
3. Product information and Skin Match
Product search and detail requests use the Supabase product catalog. Product details may include names, brands, category, images, formula versions, ordered ingredients, ingredient attributes, and formula-level analysis. The app also uses the skin profile to calculate an informational Skin Match. Catalog details and profile values are not sent to a third-party AI model by the current app.
4. Location and weather
If you use the UV and weather feature and grant device location permission, the app requests a current location and sends latitude and longitude rounded to two decimal places to Open-Meteo’s forecast API to retrieve current conditions. The app caches the returned weather data in memory for about 15 minutes. Open-Meteo states that its API server logs may contain IP addresses and geographic coordinates for troubleshooting and misuse prevention, and that these log files are deleted after 90 days. You can deny location permission; the feature will then be unavailable. See Open-Meteo’s terms and privacy notice for the provider’s current handling.
5. Photos and face processing
The app uses camera permission for an optional Daily Skin Check progress photo and on-device face framing/detection. Photos are stored locally in the app’s files. The current implementation does not upload those photos to Supabase, an analytics service, or an AI provider. The photo is only included in future AI context if a user explicitly selects it, but no AI provider is currently connected.
6. Skin AI
Skin AI is currently configured to use a local mock provider. It returns a placeholder response and does not transmit chat messages, profile data, attached context, or photos to Gemini, OpenAI, or another model service. Chat history and reusable context summaries are stored locally. This policy must be updated before connecting a remote AI provider.
7. Notifications and reminders
Routine, skin check, and water reminders are scheduled locally by the app using device notification/alarm functionality. The app requests notification permission when needed. It does not use a remote push-notification service for these reminders. Notification settings can be changed in the app or device settings.
8. Analytics, advertising, and crash reporting
The reviewed mobile dependency manifest and app code did not show a dedicated analytics, advertising, or crash-reporting SDK. Google Sign-In, Supabase services, the product catalog API, Open-Meteo when UV is used, and app-store/platform services still process requests needed for their functions. A final release audit should verify the production build and any later added SDKs.
9. Service providers
- Google: identity authentication.
- Supabase: authentication, user profile, shelf records, routine backup/sync, and product catalog API.
- Open-Meteo: current weather and UV data after an in-app location request. Open-Meteo states its free API is for non-commercial use; the app operator must confirm the appropriate plan/licence for SkinDecode before a commercial launch.
- Apple and Google mobile platforms: operating-system capabilities such as secure storage, camera/location/notification permissions, and local notifications.
10. Security and retention
The app uses Supabase authentication and row-level access controls on user-owned data, and stores authentication sessions with Expo SecureStore. Device-local databases are stored in app-private storage. No system can guarantee absolute security. The repository does not establish a complete server-side data retention schedule for account-linked records. Local Daily Skin Check history is limited to 30 days; other local records remain until deleted in the app or the app’s local storage is removed.
11. Account and data deletion
Users can delete their account in the app from Profile → Delete account or use the secure account deletion page. The server deletes the authenticated Supabase account and linked cloud records. The app also clears that account’s local SkinDecode data on the device; web deletion cannot remove local-only data from your phone. The web deletion flow stores a Supabase sign-in session in your browser so it can verify and delete the signed-in account; sign out on that page to clear the browser session. Signing out alone does not delete your account or cloud data.
12. Children
The app collects an age range that includes users under 18. The repository does not provide enough information to determine the operator’s intended age policy or parental consent process. The operator must define and review those requirements before release, including applicable child privacy laws.
13. Your choices
You can edit your skin profile, remove shelf products, manage app permissions, turn reminders off, delete local daily check-in/photos, clear local Skin AI chat history, and delete your account through available app controls. An external account deletion request route is still being completed.
14. Changes and contact
This policy must be updated when data practices change. No verified privacy contact is configured yet. Please do not treat the page as a complete legal policy until the launch-blocking operator and contact details are supplied and this text is reviewed for the launch regions.