Skip to main content

Privacy Policy

Last updated: April 27, 2026

This document describes what data Growany for X collects, where it is stored, and what it is used for. It is written to satisfy Chrome Web Store’s User Data FAQ and to be readable by humans.

TL;DR

What we store locally

The extension caches a few things in chrome.storage.local inside your own browser to keep the UI fast and to debounce uploads. They are mirrored to the cloud whenever you are signed in (see Cloud sync below) so the cloud row remains the source of truth.

KeyPurpose
growany.activity.v1Local log of every follow / like / reply / post Growany performed for you, capped at 5000 rows. Powers the History page.
growany.touched.v1The set of X handles and post IDs Growany has already engaged, so it doesn't re-engage them.
growany.counters.v1Per-hour and per-action usage counters used to enforce the action caps you see in Settings (Free has lifetime caps; Pro/Max have daily caps).
growany.prefs.v1Recent keywords (max 8), language filter, recent competitor handles.
growany.cloudAuth.v1If you sign in: your Firebase ID token + refresh token + the email/uid we received from Firebase. Cleared on Sign out.
growany.cloudSync.v1Timestamps of the last successful incremental sync push, so we only upload deltas.
growany.idbMigration.v1.doneOne-time flag: whether the legacy IndexedDB → storage.local migration has run on this machine.

You can wipe each of these from the History → Settings tab:

You can also wipe everything by removing the extension from chrome://extensions.

Cloud sync

Sign-in is required to use Growany. The extension authenticates you via Firebase Authentication (Google or email/password). After that:

  1. The extension periodically calls our backend API to push incremental changes to:
    • activity_logs — the same rows you see in the local History page
    • touched_users — handles / post IDs the extension has engaged
    • users.brand_bio — only when you edit it from the dashboard
  2. The backend persists those rows in a Postgres database, keyed to your Firebase UID.
  3. AI requests (/ai/keywords, /ai/derive-niche, /ai/draft-post) are issued from the backend to Microsoft Azure OpenAI. The prompt typically includes your X handle, name, bio, and recent activity context; it never includes your Firebase tokens, email, or any other identifier.
  4. Subscription billing is handled by Stripe. Only Stripe sees your card; we store only stripe_customer_id and stripe_subscription_id.

Free tier accounts may still sign in to use the dashboard, but cloud sync of activity & touched data is reserved for Pro / Max tiers.

Subprocessors

ProviderData sharedPurpose
Google Firebase Authenticationemail, OAuth provider id (if Google sign-in), refresh tokensign-in
Stripename, email, billing address, card details (entered on Stripe Checkout)subscription billing
Microsoft Azure OpenAI Serviceprompt text only — your X handle, name, bio, brand description, recent post snippetsLLM responses for AI features
Cloud hosting (typically GCP Cloud Run + Cloud SQL)everything above, at restrunning the backend & database

No other third party receives your data.

Permissions used and why

PermissionUsed for
storageThe local stores listed above.
sidePanelShowing the Growany UI in Chrome's right-hand side panel.
tabs / activeTabNavigating the active tab to x.com/search?... and dispatching START to the content script.
scriptingInjecting the content script that performs follow / like / reply / post clicks.
alarmsScheduling the auto-post tick and incremental cloud sync.
Host: https://x.com/*, https://twitter.com/*The content script only runs on these two origins.
Host: Growany API URLCalls to /auth, /me, /sync, /ai/*, /billing/*.

We do not request the broad <all_urls> host permission for content scripts. The History page is exposed via web_accessible_resources so the side panel can open it in a normal Chrome tab.

Network activity

The extension talks to:

The backend in turn calls the LLM provider for AI requests and Stripe for billing webhooks; no other outbound calls are made from your browser.

Data retention

Contact

Questions or concerns: open an issue on the project repository, or email the maintainer at the address listed in the Chrome Web Store listing once the extension is published.


Growany is an independent tool. It is not affiliated with, endorsed by, or sponsored by X Corp / Twitter.