Legal

Privacy Policy

Effective August 29, 2026 · Last updated September 13, 2026

This policy explains how SproutShout handles information when you use the SproutShout mobile application, website, and related support services.

1. Privacy at a glance

Local-first does not mean offline-only. Your plant library, care history, notes, settings, saved plant photos, and saved AI chat threads are stored locally on your device. Information leaves your device when you choose an online feature such as AI, Weather Assist, subscription verification, or plant-file sharing.
  • SproutShout does not create a personal account or collect your Apple or Google account credentials or profile information through the app. Apple or Google may require a store account to download the app, subscribe, restore purchases, or manage billing. If you voluntarily email support, we receive the sender address and message you provide.
  • We do not include third-party advertising or behavioral advertising SDKs.
  • We do not sell personal information or use it for cross-context behavioral advertising.
  • We do not operate cloud sync for your plant library.
  • The app uses a random installation identifier and pseudonymous subscriber record to enforce paid access, quotas, rate limits, and abuse protections without creating a SproutShout profile.

2. Scope and operator

SproutShout is operated by Christopher W. Jacobs (“SproutShout,” “we,” “us,” or “our”), who is the controller or business responsible for the processing described in this policy where those concepts apply. This policy applies to the SproutShout mobile app, this website, and support communications that link to it.

This policy does not control Apple, Google, OpenAI, RevenueCat, Supabase, WeatherAPI, or any application or service you select from your device’s sharing interface. Those organizations may process information as our service providers or as independent controllers under their own terms and policies, depending on the service and context.

3. Information we handle

Information stored locally on your device

Depending on how you use SproutShout, the app stores plant names and species, plant profile details, notes, locations within your garden, pot and environment details, care schedules and history, notification settings, app preferences, statistics, imported sharing history, photos you select or take, and AI chat messages and images. The version and time of the first-launch Terms acknowledgement and the separate AI data-sharing permission are also stored locally. Local notifications and widget snapshots are generated from local app data.

AI information you choose to send

Before AI Helper becomes usable on an installation, SproutShout displays an in-app disclosure and asks for affirmative permission. If you agree, the app saves the current permission version and time locally on that device. It sends the permission version with AI requests so the backend can reject requests from a client that has not presented the current disclosure. The local permission can be withdrawn in Settings.

When you use an AI feature, SproutShout sends the text you enter, images you attach, the limited chat history needed for the conversation, and any plant details you select for context to our backend and then to OpenAI in one response request that asks OpenAI to score both input and output for safety. SproutShout automatically withholds content flagged under its safety policy before displaying it. The app does not send your entire plant library by default. SproutShout also sends OpenAI a pseudonymous safety identifier derived from backend identifiers; it is not your name, email address, raw installation identifier, Apple ID, or Google account. The same opaque identifier is retained once on the corresponding pseudonymous subscriber record so a provider safety notice can be matched without storing routine AI content.

Voluntary AI response reports

If you choose to report the latest AI response in a chat tab, SproutShout sends that reported AI response, the preset reason you select, the AI mode, and a random report identifier to our backend. The backend stores those fields and adds review status and server timestamps so the output can be reviewed. The stored report fields do not include your prompt, photos, location, plant context, free-form report text, account information, random installation identifier, or raw IP address. Network providers still process connection information as described below.

Weather information you choose to send

When you use Weather Assist, SproutShout sends the location label and geographic coordinates you selected, together with operational request information, to our backend and WeatherAPI so weather conditions can be returned. Coordinates can be precise if you manually enter or select a precise latitude and longitude; a city, postal-code, or search result may instead represent an approximate location. SproutShout does not request operating-system location permission or continuously track your device’s location. A saved weather location also remains on your device.

Purchase and subscription information

Downloading the app and making or managing a purchase may require an Apple ID or Google account under the applicable store’s rules. Apple or Google processes that account and payment. SproutShout and RevenueCat receive purchase and entitlement information such as product, subscription status, renewal or expiration status, store, environment, and transaction-related identifiers. We do not receive your store password or full payment-card number.

Operational and security information

The app creates a random installation identifier. RevenueCat receives that identifier as a custom app user ID. Before our backend stores an installation record, it applies a one-way keyed hash. Verified store transaction identifiers are also transformed with a keyed hash and linked to a pseudonymous subscriber record so the same active store subscription can be recognized across that subscriber’s restored devices; SproutShout does not receive the purchaser’s store password or profile. Our backend stores subscription and entitlement status, plan and product metadata, monthly usage and reservation counters, request result and error categories, model and token counts, attached image and plant counts, latency, idempotency information, app version, platform, timestamps, rate-limit records, and the one opaque OpenAI safety identifier described above. When an AI safety check refuses content or cannot operate, a sparse security event may also contain the feature and moderation stage, policy action, moderation category labels, and internal or provider request identifiers needed to investigate the event. If a verified support, provider, legal, or security concern requires review, access-restricted records may also contain a coded case source, status and severity, provider reference, restriction scope and timing, coded reason and resolution, and an audit of administrator actions. These security records are designed not to store routine prompts, responses, photos, selected plant context, exact locations, raw installation identifiers, raw store transaction identifiers, or raw IP addresses. SproutShout does not intentionally include a raw IP address as an application data field or store raw IP addresses in its application database. Network and hosting providers necessarily process connection information, which can include an IP address and request headers, while receiving, delivering, and protecting requests under their own policies.

Information you share

If you export a SproutShout sharing file, it can contain the selected plants’ names, species, profile details, notes, environment and schedule information, and a limited care history. The file does not include the plant-photo files themselves. Your device’s sharing interface sends the file to the person, app, or service you choose.

Support communications

If you email support, we receive your email address and whatever information, screenshots, or diagnostics you include. Please do not send sensitive information that is not needed to resolve the issue.

Website information

This static website does not set advertising cookies, run analytics, create accounts, or operate a contact form. Our hosting provider may process ordinary request information, including IP address, browser information, requested page, timestamps, and security logs, to deliver and protect the site.

4. How we use information

We use information only as reasonably necessary to:

  • provide plant care, AI, weather, subscription, sharing, reminder, and widget features you request;
  • review AI responses that you voluntarily report for safety, appropriateness, and service quality;
  • verify purchases, restore entitlements, and synchronize subscription status;
  • enforce monthly feature limits, prevent duplicate charging of quota, apply rate limits, and protect the service from fraud or abuse;
  • measure aggregate feature use and service performance without building an advertising profile;
  • operate, secure, troubleshoot, and improve reliability and performance;
  • respond to support requests and enforce our Terms; and
  • comply with law and protect users, SproutShout, and others.

Where applicable law requires a legal basis, we rely on performance of our contract with you, your consent or requested action, our legitimate interests in operating and securing the service, and compliance with legal obligations.

5. Service providers and disclosures

ProviderPurpose and information involved
Apple App Store / Google PlayApp distribution, payment, subscription management, refunds, and store services. They process store-account and transaction information under their own policies.
RevenueCatSubscription offerings, purchase validation, entitlement status, customer center, and webhooks. Receives the random app user ID and purchase/entitlement data.
SupabaseHosts SproutShout Edge Functions and operational databases. Processes AI and weather requests in transit and stores the limited subscription, quota, security metadata, and voluntary AI response reports described above.
OpenAIModerates AI inputs and outputs and generates responses from the text, images, conversation context, and selected plant context you submit. OpenAI also receives a pseudonymous safety identifier and ordinary API request metadata. OpenAI states API data is not used to train its models unless the API customer opts in. SproutShout requests that Responses API application state not be stored, while OpenAI’s standard abuse-monitoring retention and documented exceptions may still apply.
WeatherAPIProvides current, historical, and forecast weather information for the location coordinates and label you submit through Weather Assist.
CloudflareHosts and protects this public website and may process connection and security logs.
Zoho MailHosts the SproutShout support mailbox and processes support messages, sender addresses, attachments, and related email metadata.

Provider privacy resources: Apple, Google, RevenueCat, Supabase, OpenAI, WeatherAPI, Cloudflare, and Zoho.

To the extent a provider processes personal information on our behalf, we require it to process the information for the contracted service and to provide the same or equivalent protection described in this policy and required by applicable law. No provider is authorized by us to use SproutShout data for its own targeted advertising. We may also disclose information if required by law, legal process, or a valid government request; to investigate fraud, security, or safety issues; to protect rights and property; or as part of a merger, acquisition, financing, reorganization, or sale, subject to appropriate notice and safeguards.

6. Retention and deletion

On-device data

Plant and app data remains on your device until you delete the relevant plant, clear the relevant AI chat, remove imported caretaker plants, clear app storage through your operating system, or uninstall the app. Deleting a plant removes its locally stored schedules, notes, care history, photo reference, and the app-owned copy of its photo when one exists. Replacing or removing a plant photo also removes the previous app-owned copy when one exists. SproutShout does not delete the original photo from your device’s photo library or another application. Clearing an AI tab removes that tab’s locally saved messages and images.

Backend operational data

Our current application-database retention schedule is:

  • rate-limit buckets: approximately 2 days;
  • expired Identify follow-up grants: approximately 7 days after expiration;
  • completed request-level usage and operational events: approximately 90 days;
  • monthly aggregate usage counters: the current month and up to 13 prior months;
  • RevenueCat webhook delivery records: approximately 180 days;
  • voluntary AI response reports: while awaiting review, then approximately 90 days after they are resolved or dismissed;
  • unlinked informational, low-, or medium-severity security events: approximately 90 days; unlinked high- or critical-severity security events: approximately 24 months;
  • resolved low- or medium-severity security cases: at least 90 days after resolution; resolved high- or critical-severity security cases: at least 12 months after resolution;
  • administrator action audits: approximately 24 months, unless an active or retained case or restriction requires longer retention;
  • expired or revoked service restrictions: until the associated case retention ends and at least 90 days have passed after the restriction ended; and
  • installation, pseudonymous subscriber, entitlement, and active restriction records: while reasonably needed to provide or restore paid access, keep one subscription’s allowance consistent across restored devices, prevent reinstall-based evasion, enforce unresolved restrictions, handle disputes, and meet legal obligations.

Deletion jobs generally run weekly, so a record may remain briefly beyond the stated period. Pending quota reservations, active investigations, unresolved reports, open cases, active restrictions, litigation or preservation holds, chargebacks, tax or accounting duties, valid legal requests, and other legal obligations may extend retention. Provider request identifiers in security-event records are ordinarily removed after approximately 90 days unless protected by an active or retained case. We may retain information that has been aggregated or de-identified so it can no longer reasonably be associated with an installation or subscriber.

Provider retention

Providers maintain their own retention rules. SproutShout sends store: false with its OpenAI Responses API requests, which requests no Responses API application-state storage. OpenAI documents that standard API abuse-monitoring logs may generally be retained for up to 30 days and that documented safety, legal, image-review, and other exceptions may apply. OpenAI also documents that image and file inputs are scanned for potential child sexual abuse material and that detected material may be retained for manual review even where application-state storage is disabled. Store, subscription, weather, hosting, and support providers may retain information under their policies and legal obligations.

Deletion requests

SproutShout has no SproutShout login account to delete. Your Apple or Google store account is separate and controlled by that provider. You may request deletion of backend information reasonably associated with your installation or support email by contacting us. We may need the nonsecret Support ID shown in Settings or other narrowly tailored information sufficient to locate the pseudonymous record, verify the request, and prevent unauthorized deletion. We will delete or de-identify eligible information and tell you if applicable law permits or requires us to retain a limited record. Deleting SproutShout data does not cancel a store subscription; cancel it through Apple or Google separately.

7. Your choices and privacy rights

  • Photos and camera: do not grant access, or revoke access in device settings. Features requiring a new photo may not work.
  • Location: SproutShout uses the location you enter or choose for Weather Assist. You can change or remove the saved location in the app.
  • AI: choose Not now on the AI disclosure to leave AI Helper without sending AI content. If you agree, you can later review or withdraw permission in Settings; AI Helper remains blocked until permission is granted again. Withdrawal does not affect processing already completed before withdrawal. Do not submit information you do not want processed by the AI providers. Clear a chat tab to remove its local thread and saved images. Reporting an AI response is voluntary; cancel the report dialog if you do not want to send it for review.
  • Notifications: change reminder settings in the app or device settings.
  • Plant sharing: inspect the selected plants and destination before sharing. Once another service or person receives a file, their handling is outside our control.
  • Subscriptions: restore, manage, or cancel using the controls in SproutShout or your store account.
  • Privacy request: email [email protected].

Depending on where you live, you may have rights to know or access, correct, delete, restrict, or object to certain processing; receive a portable copy of certain information; withdraw consent; and receive equal service without unlawful discrimination for exercising a privacy right. You may also have the right to appeal our response or complain to your local privacy regulator. SproutShout does not make decisions producing legal or similarly significant effects based solely on automated processing. These rights can be limited by law, and because SproutShout does not use accounts, we may need information from your installation to locate a pseudonymous record and verify the request. An authorized agent may submit a request where local law permits, but we may require proof of authority and direct verification with the user.

We do not sell personal information, share it for cross-context behavioral advertising, or use it for targeted advertising. We therefore do not offer an advertising opt-out signal or “Do Not Sell or Share” toggle.

8. Children and family use

SproutShout is a general-audience plant-care service and is not directed or marketed to children under 13. Children under 13 may not independently use SproutShout’s online features or submit personal information through them. A parent or guardian may use SproutShout for household gardening, but should not submit a child’s personal information, photos of a child, or content identifying a child through AI, Weather Assist, support, or another online feature.

We do not knowingly collect personal information online from children under 13. If you are a parent or guardian and believe a child under 13 submitted personal information to us, contact us. We will investigate and delete eligible information or take other action required by law.

9. Security and international processing

We use administrative, technical, and organizational safeguards appropriate to the information we handle, including restricted backend access, server-side secrets, authorization checks, pseudonymous installation records, and encrypted network transport. No method of storage or transmission is completely secure, so we cannot guarantee absolute security.

Our providers may process information in the United States and other countries. Those countries may have privacy laws different from those where you live. Where required, we use lawful mechanisms for cross-border processing.

10. Changes to this policy

We may update this policy as SproutShout changes. We will post the revised policy here, update the date above, and provide additional notice where required. Materially different data uses will not be applied retroactively without an appropriate legal basis or consent.

11. Contact

For privacy questions or requests, contact:

Christopher W. Jacobs
California, United States
Email: [email protected]