What we collect, why we collect it, and what we never do with it.
Last updated: August 31, 2026
We collect only what we need to run the app. We don't sell your data. We don't run ads. We don't share it with data brokers. You can export everything we hold about you, or delete your account and have it wiped, at any time from inside the app.
You can use UrbanTreelogy, including purchasing Pro, without creating an account. Signing in with Google or Apple is optional and only enables cross-device sync of your garden, care plans, and history.
Two things we ask about rather than assume: the app can report anonymous usage analytics, and this website counts visits. Both are off until you agree. See Diagnostics and analytics in the app and Analytics on this website below.
The rest of this page explains the details (what's collected, why, who the third parties are, and how to exercise your rights) in language we hope is plain enough that you don't need a lawyer to read it.
UrbanTreelogy ("we", "us", "the app") is a smart gardening assistant built and operated by a husband-wife duo: Sayan Biswas and Abritty Bose. If you have any questions about this policy, you can reach us at urbantreelogy@gmail.com.
Here's everything UrbanTreelogy collects, the reason we collect it, and where it lives.
| What | Why | Stored where |
|---|---|---|
| Name & email | If you sign in with Google or Apple, we receive the name and email associated with that account so we can show your profile and recover your data on a new device. Apple's "Hide My Email" relay is fully supported. | Firebase Auth + Firestore |
| Account ID (Firebase UID) | The internal anonymous identifier that ties your garden, care plans, journal, and subscription state together. It's a random string, not derived from anything you can be identified by outside the app. | Firebase Auth + Firestore |
| Device ID | A self-generated identifier stored on your device, used purely to enforce fair-use limits on AI features (so a single device can't spin up many anonymous accounts to get unlimited quota). | Firestore |
| Plant garden & activity | The plants you add, the photos you take of them, the care actions you log, journal entries, vacation plans, weekly check-ins, health timelines. This is the app. Without it, there's nothing to come back to. | Firestore |
| Photos sent to the AI | If you ask the Plant Assistant to identify a plant or diagnose an issue from a photo, the image is sent to our AI provider for analysis. We don't store the photo on our servers afterwards; only the resulting answer is logged against your account. | Transient: passed through to AI provider, not retained by us |
| Your phone number (vacation guide) | Optional. If you generate a printable plant care guide for someone watching your plants while you're away, you can include your phone number so they can reach you about a routine. It's embedded in the generated PDF and sent to our AI provider as part of the prompt that personalises the guide. We don't store your phone number on our servers. | Transient: passed through to AI provider and embedded in the generated PDF, not retained by us |
| Neighbour's name (vacation guide) | Optional. If you choose to address the printable guide to a specific person, the name you enter is embedded in the PDF and sent to our AI provider as part of the prompt. We don't store this contact information on our servers. | Transient: passed through to AI provider and embedded in the generated PDF, not retained by us |
| City (location) | If you share the city you live in, we use it to fetch weather context and tailor plant recommendations and care schedules to your climate. We never request precise GPS location. | Firestore |
| Life stage | Optional. A coarse, self-declared band you can pick during onboarding: student, professional, self-employed, at home, retired, or prefer not to say. It helps us pitch care routines at the time and attention you realistically have. We don't ask for your age, job title, or employer. | Firestore |
| Plant budget | Optional. A rough spending comfort band you can pick during onboarding: thrifty, moderate, premium, splurge, or prefer not to say. It keeps plant and supply suggestions near what you'd actually buy. It's a stated preference, not income, and we never see what you spend. | Firestore |
| Usage data | How many AI actions you use per week, how many care tasks you complete, your check-in streak. This powers the weekly free-tier quota and the in-app proficiency score. | Firestore |
| Subscription state | Whether you're on the Free or Pro tier, which plan you bought, when it renews. Apple/Google handle the actual payment; we never see your card details. | Firestore (synced from RevenueCat) |
Life stage and plant budget are the only two questions we ask about you rather than about your plants, so here's exactly where they stand. Both are optional: every one has a prefer not to say option, you can skip the step entirely, and no feature is locked or degraded if you do. Both are fixed-choice, with no free-text box, so you can't accidentally tell us more than the options above. Both stay on your profile and are never sent to our AI provider or any third party. And both can be changed or cleared at any time from in-app settings.
The app uses two Google services that are worth keeping apart, because we treat them differently and so does the law. One keeps the app working. The other tells us whether a feature was worth building.
When the app crashes or hits an unexpected error, we receive a report: what went wrong, where in the code, and the device model and operating system version it happened on. It is how we find faults we cannot reproduce ourselves, including ones that only appear on particular devices or network conditions.
This runs whenever you use a released build, and we do not ask permission for it. Keeping the app working is what you installed it for, and a crash reporter that only runs for some people cannot tell us whether a fault is rare or everywhere. Reports carry your account identifier, so we can tell one person's repeated crash from many people's single ones. They do not carry your garden, your photos, your questions to the assistant, or anything you typed.
Analytics tells us which features get used and where people give up. It is off until you agree. We ask once, inside the app. Until you answer, nothing is collected, and if you decline we do not ask again.
If you agree, we record a short list of milestone events: finishing onboarding, adding a plant, opening the upgrade screen, starting or completing a purchase, redeeming a promo code, signing in, and generating a vacation plan. Alongside those, the Google Analytics SDK records its own standard events for any app that uses it, such as first open and session starts, together with your device type, app version and a coarse location derived from your IP address. Your account identifier is attached so repeat use is not counted as a new person each time.
If you have filled in the optional life stage and plant budget questions, those two answers are attached as broad segments, so we can tell whether a feature works better for one group than another. We do not record what you typed, which plants are in your garden, your photos, or anything you asked the assistant.
You can change your answer at any time in the app's settings. Switching analytics off does two things: it stops collection, and it clears the analytics data already gathered from your device. Deleting your account also stops collection and resets the question, so a fresh start on the same device is asked again rather than assumed.
Everything above describes the mobile app. This website, the pages you are reading right now, is a separate thing, and it does one thing the app does not: it counts visits, using Google Analytics 4, so we can tell whether anyone is finding us at all. It is not connected to your app account. There is no way for us to tie a visit here to a garden in there.
Analytics storage is off by default. We ask on your first visit to our home page, and nothing is stored until you answer.
_ga and _ga_<id>) so a repeat visit is recognised as the same person rather than counted twice. It records which pages you viewed, how you arrived (referring site or search), your device and browser type, and a coarse location derived from your IP address, city level at finest. We never see the IP address itself.We use this to answer questions like "did anyone visit this week" and "which page do people land on first". We do not run ads, remarketing, Google Signals, or cross-site tracking. Ad storage and ad personalisation are switched off permanently, not merely until you consent. To change an answer you have already given, clear this site's data in your browser settings and we will ask again on your next visit to the home page.
If you would rather not be counted at all, your browser's tracking protection or Google's opt-out add-on will block it, and every page here works exactly the same.
UrbanTreelogy uses the OS notification permission only to fire reminders you've configured yourself: vacation departure and return reminders, and care-plan task reminders. These notifications are scheduled locally on your device; no third-party push service is involved and no notification content leaves your phone. You can revoke the permission at any time from your system settings, and the app continues to work with notifications disabled.
We do not use your information for advertising, profiling for ad networks, or selling to data brokers. We don't currently use your data to train AI models. If that ever changes, this page will be updated and you'll be notified inside the app.
UrbanTreelogy is built on a small set of trusted infrastructure providers. Each one only sees the slice of data it needs to do its job.
| Provider | Role | What they see |
|---|---|---|
| Firebase (Google) | Authentication, database (Firestore), and the cloud functions that run our server logic. | Almost everything in the table above. They process this on our behalf under Google's data-processing terms. |
| Google Generative AI (Gemini API) | Powers the Plant Assistant, Find Plants, Care Plan, Vacation Plan, and Neighbour Guide features. | The text of your question and any photo you choose to send. They do not receive your name, email, or account ID. |
| Google Analytics | Counts visits to this website, and separately, records milestone events in the app if you agree to it. | On the website: which pages you viewed, your referrer, your device and browser type, and a coarse location from your IP. In the app: the milestone events listed above, your device type and app version, your account identifier, and your optional life stage and plant budget answers. Both are only with your consent, and the two are not joined together. |
| Firebase Crashlytics (Google) | Reports crashes and unexpected errors in the app so we can fix them. | The error and where it happened in our code, your device model and operating system version, and your account identifier. Nothing from your garden, photos, or assistant conversations. |
| RevenueCat | Manages subscription state across App Store and (later) Play Store, so we can tell whether you're on Free or Pro. | Your Firebase UID, the product you bought, and whether the subscription is active. They never see your name, email, or anything else from your garden. |
| Apple App Store / Google Play | Process the actual payment for Pro subscriptions. | Your payment details and Apple/Google account. We never see your card number, billing address, or payment method. |
All of them are major, established providers with their own published privacy practices and contractual data-processing commitments.
We keep your data for as long as your account is active. When you tap Delete account in the app, what happens next depends on whether you have an active App Store or Google Play subscription at the time.
We perform a full deletion within a few days:
After this, signing in again with the same Google or Apple account creates a brand-new account with no historical data. There is no way for us, or you, to recover what was deleted.
Apple and Google do not allow third-party apps to cancel a paid subscription on the user's behalf, so deleting your account in our app would still leave you being charged. To prevent that, we use a two-step deletion when an active subscription is detected:
softDeletedAt timestamp marking the deletion. Your Firebase Authentication record is also kept alive.The 90-day grace exists purely to give you a recovery window for the Pro you've already paid for. If you'd prefer immediate full deletion regardless of subscription state, cancel your subscription first via Settings → Apple ID → Subscriptions (or the equivalent on Google Play), wait for it to expire, and then tap Delete account.
Some residual data may persist briefly in our cloud providers' backup snapshots before rotating out. We may also retain anonymous, aggregated metrics (such as total active gardens) that can no longer be linked back to you as an individual.
Regardless of where you live, UrbanTreelogy gives every user the same controls:
If you're in the EU, UK, or California, you also have the rights granted under GDPR / UK GDPR / CCPA respectively (including the right to lodge a complaint with your local data-protection authority). Email us first. We'd rather fix it.
UrbanTreelogy is operated from India, and our service providers (Firebase, Google AI, RevenueCat, Apple, Google) operate globally. By using the app you understand that your data may be processed in countries outside your own, including the United States. Each provider relies on standard contractual clauses or equivalent legal mechanisms for cross-border transfers.
Plants don't care about your age, and neither does our app. UrbanTreelogy is rated 4+ and family-friendly: a curious eight-year-old learning to water a basil plant is just as welcome as their grandparent tending a balcony of succulents. Use it together. We'd love that.
Nothing in the app asks for an age or a date of birth, and the optional onboarding questions aren't a back door to one: "student" covers a ten-year-old with a windowsill herb pot and a forty-year-old back in evening classes alike, and we make no attempt to tell them apart.
That said, we don't knowingly collect personal information from children under 13 without a parent or guardian's involvement, and the app doesn't need any such information to work. If you're a parent and you'd like a child's account removed, email us at urbantreelogy@gmail.com and we'll take care of it.
Your data is transmitted over HTTPS and stored in Firestore with project-level access controls. Authentication uses Firebase's tokens. Your password (if any) is held by Google or Apple, not by us. Cloud Functions run with least-privilege service accounts, and our RevenueCat webhook is protected with a shared secret.
No system is perfectly secure, but we treat your data the way we'd want our own treated.
If we change this policy in a material way, we'll update the "Last updated" date at the top and surface a notice in the app the next time you open it. Minor wording fixes don't get a notice but will still be reflected here.
Questions, concerns, or want to exercise a right we listed above?