MeMe Chat AI is an AI chat app with meme and GIF media. You confirm your age, sign in, chat with an AI companion, and can browse, search, attach, and download trending memes and GIFs. To make that work, your messages — and the meme/GIF images involved in a chat — are sent to OpenAI to generate replies and are stored in our Firebase backend; meme and GIF media come from Klipy; and subscriptions run through RevenueCat with the app stores. Free users see ads served by Google AdMob (we request non-personalized ads); paid plans are ad-free. We do not sell your personal information, and the app does not use third-party analytics, crash-reporting SDKs, attribution SDKs, or cross-app tracking.
This policy explains, in plain English, what data MeMe Chat AI handles, who processes it, how long it is kept, and the choices you have.
MeMe Chat AI ("the App") is published by Jorge Jimenez ("we", "us"). The App is built with Expo and React Native, and its backend runs on Google Firebase (Authentication, Cloud Firestore, and Cloud Functions).
The main services that process your data are:
We do not sell your personal information. Free users see ads served by Google AdMob, for which we request non-personalized ads (see Section 14); paid plans are ad-free. Aside from AdMob, we do not use third-party analytics SDKs, crash-reporting SDKs, attribution SDKs, or cross-app tracking. Backend logs and diagnostics are still processed by Firebase / Google Cloud as part of running the service (see Section 13).
| Category | Examples | Where it goes |
|---|---|---|
| Account & authentication | Email address, Firebase user ID (UID), email-verification status, sign-in provider, Apple Sign In identifier | Firebase Authentication, Firestore profile |
| Age-gate data | Date of birth you enter and the resulting pass/block decision | Stored locally on your device (AsyncStorage); see Sections 4 and 11 |
| AI conversation content | Your messages and the AI's replies (text) | Sent to OpenAI; stored in Firestore |
| Meme/GIF image inputs & references | Meme image URLs and animated-GIF still frames involved in a turn; stored references/metadata for memes and GIFs attached to messages | Image inputs sent to OpenAI; references stored in Firestore; media fetched from Klipy |
| User-uploaded chat photos | Photos you take with the camera or pick from your library to attach to a message (compressed on-device before upload) | Stored in Firebase (Cloud) Storage under messageImages/{uid}; sent to OpenAI as image inputs; deleted on conversation/account deletion |
| Conversation metadata | Conversation titles, first-message snippet, last-message preview, summaries, persona metadata, timestamps | Firestore (titles/summaries are generated by OpenAI) |
| Message ratings / reactions | Thumbs up/down you give an AI reply | Firestore (stored on the message) |
| Profile & personalization | Alias/nickname, display name, rot-level preference, chat appearance customization | Firestore profile and/or local device; rot level may influence AI prompts |
| Usage, credit & billing metadata | Token counts, cost estimates, credits, plan/model, usage events | Firestore; visible in backend logs |
| Purchase & subscription data | Subscription status, product IDs, entitlement/expiry, receipts/purchase tokens, transaction metadata, RevenueCat app user ID (= your Firebase UID) | RevenueCat, Apple App Store, Google Play; status mirrored in Firestore |
| Klipy meme/GIF request data | customer_id (= your Firebase UID), page, results-per-page, locale/country, content-filter level, and a search query — which may be one you type or one the AI generates from the conversation |
Sent to Klipy via our backend |
| Local device data | Theme/appearance, language, onboarding flag/step, alias, chat customization, age-gate status & date of birth, rot level, last-open conversation, Firebase Auth session/cache | Stays on your device (AsyncStorage) |
| Technical, log & rate-limit data | Diagnostic logs, error strings, IP address / network data, attachment metadata, hashed IP rate-limit buckets | Cloud Functions logs (Google Cloud); Firestore (hashed IP) |
| Device permissions / OS surfaces | Camera and photo/media library access (to take or pick a photo to attach), media-library save access, notification permission, clipboard (when you copy a reply) | Your device; see Section 12 |
| Support communications | Emails you send us and their contents | Our support inbox |
| Advertising data (free users) | IP address, device information, advertising or app identifiers (where available and permitted), coarse location derived from IP, ad interactions, and diagnostics — used to serve non-personalized ads; paid plans are ad-free | Google AdMob; see Section 14 |
| Not collected (current version) | No microphone, precise location, contacts, calendar; no file or audio uploads; no third-party analytics, crash-reporting, or attribution SDKs; no cross-app tracking (free users do see ads via Google AdMob — see Section 14) | — |
An account is required to chat and to keep your conversation history. You must be signed in and have a verified email address to use the chat features. Anonymous sign-in is not permitted.
You can sign in with:
For your account we store your email address, your Firebase-generated user ID (UID), your email-verification status, and which sign-in provider(s) you used. If you use Sign in with Apple, we receive an Apple identifier and the email Apple shares with us — if you choose Apple's Hide My Email, that may be an Apple private relay address rather than your real email.
We do not store raw passwords. Password-based sign-in is handled entirely by Firebase Authentication.
During onboarding you may also set a personalization alias / nickname and a display name; see Section 7.
MeMe Chat AI is intended for users 16 and older. The App includes a mandatory date-of-birth age gate. Before you can use the App, you enter your date of birth; the App computes your age and either lets you continue or blocks access if you are under the minimum age.
Your date of birth and the resulting pass/block decision are stored locally on your device (see Section 11). This record is intentionally retained on the device after you delete your account, so that someone under the minimum age cannot bypass the check by deleting and re-creating an account. It is cleared by reinstalling or removing the App.
MeMe Chat AI uses OpenAI to generate AI chat replies and to create conversation titles and conversation summaries. The App may use different OpenAI models depending on your plan.
When you send a chat message, our backend may send OpenAI:
Conversation history is sent to OpenAI so the AI can respond with context. In addition to text, the App sends image inputs to OpenAI: meme images are sent as image URLs, animated GIFs are decoded by our backend into a few still frames that are sent as image data, and photos you upload to a message (taken with the camera or chosen from your photo library) are sent as image data so the AI can respond to them. The App does not support other file uploads, audio, or microphone input, so those are not sent to OpenAI.
Separately, and at our own cost (never billed to you):
Your messages and the AI's replies are stored in our Firestore database, along with conversation titles, a first-message snippet, a last-message preview, summaries, persona metadata, and references to any attached memes/GIFs (see Sections 6 and 7).
OpenAI states that data submitted through its API is not used to train its models by default, unless the developer explicitly opts in (we do not), and that OpenAI may retain limited API logs for abuse monitoring for up to 30 days unless a longer period is required by law or another exception applies. We have not entered into a Zero Data Retention arrangement with OpenAI. OpenAI's own privacy policy and API data-use terms govern its processing.
AI responses can be inaccurate, incomplete, or out of date. Do not rely on them as professional advice.
Both you and the AI can attach Klipy memes and GIFs to messages. When a meme or GIF is part of a turn:
You can also attach your own photos — taken with the
camera or chosen from your photo library. An attached photo is compressed
on your device, uploaded to our Cloud Storage under a path scoped to your
account (messageImages/{uid}/{conversationId}), referenced on
the message in Firestore, and sent to OpenAI as an image input. The App
does not support uploading other files or audio. Uploaded photos are
deleted when you delete the conversation or your account (see Sections
19–20).
Your conversations — including the full text of your messages and the AI's replies — are stored in Firestore and linked to your Firebase UID, so your history is available across your sessions. We also store conversation titles, a first-message snippet, a last-message preview, AI-generated summaries, persona metadata, references to attached memes/GIFs, and any thumbs up/down rating you give an AI reply.
You may set a personalization alias/nickname and a display name, which are stored in your Firestore profile (and mirrored locally). Your rot-level preference is stored locally and on your messages and may influence the style of the AI's responses (see Section 5). Optional chat appearance customization (such as bubble style and background, which may be tied to paid features) is stored locally on your device.
You can delete individual conversations from within the App. Deleting a conversation removes that conversation and its messages, but it does not delete your account or profile, does not delete your purchase data, and does not refund credits. Your conversation data remains until you delete the conversation, delete your account, or we remove it for operational, safety, or legal reasons.
The App uses the Klipy API to show trending memes and GIFs, to let you search memes and GIFs by keyword, and to let the AI attach relevant meme/GIF reactions. The Klipy app key is held only on our backend and is never exposed to the App.
When the App requests media, our backend sends Klipy:
customer_id, which is set to your Firebase UID;Search queries sent to Klipy may be ones you type or ones the AI generates from the conversation. When the AI decides a meme or GIF fits the moment, it forms a short search query based on the conversation context and our backend sends that query to Klipy. This means conversation-derived terms — not only text you type into a search box — may be sent to Klipy.
According to Klipy's integration notes, customer_id is used
for personalization and de-duplication and is expected to stay
consistent for the same user, which is why the Firebase UID is passed.
Meme/GIF results are shown in the App and are not stored long-term by us,
except that a reference to a meme/GIF you or the AI attach to a message
is stored on that message (see Section 6). Klipy's own handling,
retention, and analytics are governed by Klipy's policies.
The current version does not use any Klipy advertising features or ad SDK.
We use Google Firebase to run the App:
Cloud Storage for Firebase stores the photos you upload
as chat attachments, under a path scoped to your account
(messageImages/{uid}/{conversationId}). Storage access is
locked down so you can only read and write within your own namespace.
These objects are deleted when you delete the conversation or your account
(see Sections 19–20). The App does not store any other user uploads (no
other files or audio) in Cloud Storage.
Our Cloud Functions logs may contain technical metadata such as your
UID, conversation and message IDs, token counts, cost/credit figures,
plan/model, attachment metadata, rate-limit details, IP/network data,
and error strings. We do not intentionally log the text of your prompts
or the AI's replies (see Section 13). Our Cloud Functions run in Google's
us-central1 region.
Firebase / Google Cloud processes this data on our behalf as a service provider/processor under its own terms.
Subscriptions, entitlements, and purchase restoration are managed through RevenueCat, with Apple App Store and Google Play as the payment processors. Your RevenueCat "app user ID" is set to your Firebase UID.
RevenueCat and the app stores may process purchase history, product identifiers, subscription status, receipts or purchase tokens, transaction metadata, the app user ID / purchase identifier, entitlement status, and renewal/expiration/cancellation events, along with related device/technical information. We never receive your full payment card number.
In your Firestore profile we store billing fields such as your plan,
active product ID, entitlement expiry, credit balance, RevenueCat app
user ID, and related status. We also keep a webhook/audit record
(revenueCatEvents) of purchase events for accounting,
fraud-prevention, and legal purposes.
RevenueCat's processing is governed by its privacy policy, and purchases are also governed by Apple's and Google's respective policies.
The App stores a small amount of data locally on your device using AsyncStorage:
Chats, prompts, AI responses, purchases, downloaded media, and logs are not persisted locally by the App's own code beyond what is listed above. Local app data is cleared as part of the sign-out and account-deletion flow, except the age-gate status and date of birth, which are intentionally retained on the device after account deletion (see Section 4). You can remove everything, including the age-gate record, by deleting the App from your device.
The current version of the App:
The current version does not request access to your microphone, precise location, contacts, calendar, Bluetooth, or speech recognition, and does not support file or audio uploads.
We ask for notification permission during onboarding. In the current version, granting permission does not result in a push token being collected or sent to us, and we do not currently send push notifications.
When you download a meme or GIF you've seen in chat, our backend fetches the Klipy media asset, composites a watermark onto it, and returns the watermarked image to the App. The App then saves the watermarked image to your device's photo/media library using the save permission above. We do not read or scan the rest of your photo library — the permission is used only to add the file you chose to save.
The App meters AI usage with a credit ledger. To do this we store token counts, cost estimates, the model/plan used, credit balances, and usage events linked to your UID. We may also keep anonymized daily usage aggregates that are not tied to an individual user.
To protect the service from abuse, our backend applies a per-IP rate limit. We store a hashed, truncated form of your IP address in a short-lived rate-limit record (swept automatically by a time-to-live policy) rather than your raw IP. However, your raw IP address or network information may appear in our Cloud Functions diagnostic logs — for example, in a rate-limit warning.
We do not intentionally log the text of your prompts or the AI's replies. Backend logs are used for operating the App, billing, security, rate limiting, and debugging, and may include metadata (including attachment metadata such as counts/hosts/types, never asset URLs) and error strings as described above.
Ads. The App shows ads to free users through Google AdMob, and requests non-personalized ads where supported. Paid plans are ad-free. The App may also use rewarded ads for optional features — rewarded ads let you choose to watch or interact with an ad in exchange for an in-app reward — though rewarded ads are not shown in the current version.
Ad providers may process information such as:
Non-personalized ads are not based on your past behavior, but they may still use contextual information, general location, device information, and technical data for ad delivery and measurement. Where required by law or platform rules, we or our ad partners may ask for consent before using certain identifiers or ad technologies.
Aside from Google AdMob, and based on the current version of the App, we do not use Google Analytics or Firebase Analytics, Crashlytics, Sentry, attribution SDKs, or any cross-app tracking. The only internal events we record are our own usage events and server logs, used for app functionality, billing, security, rate limiting, and debugging. Backend logs and diagnostics are still processed by Firebase / Google Cloud as part of running the service.
We use the data described above to:
We share information only as needed to run the App:
customer_id and any search query (typed or AI-generated).We do not sell your personal information. Free users see non-personalized ads through Google AdMob as described in Section 14; we do not otherwise share your data for cross-app tracking.
We use measures such as Firebase Authentication, server-side authorization checks, restricted database rules, backend-only API keys, host allowlisting for media, and rate limiting to help protect your data. No method of transmission or storage is completely secure, so we cannot guarantee absolute security.
MeMe Chat AI is intended for users 16 and older. It is not directed to children, and we do not knowingly collect personal information from anyone under the minimum age. The App uses a date-of-birth age gate to enforce this (see Section 4). If you believe someone under the minimum age has provided us personal information, contact us at memechataisupport@gmail.com and we will take appropriate steps.
You can delete your account from within the App. For your security, this requires recent re-authentication. When you delete your account, the App is designed to delete your Firebase Authentication user, your profile and its subcollections, the conversations and messages you own, the photos you uploaded as chat attachments (in Cloud Storage), and the usage events linked to your UID, and then to sign you out and wipe local app data (other than the retained age-gate/DOB record described above).
Account deletion is performed across separate systems, so it cannot be perfectly atomic. We delete your sign-in record first; if a later cleanup step fails, some records may briefly remain and are handled on a best-effort basis. We attempt to delete all of the data described above, but cannot guarantee that every copy is removed instantly.
The following are not deleted by account deletion:
revenueCatEvents);Deleting your account does not cancel your subscription — cancel through the App Store or Google Play (see Section 10).
You can delete selected conversations from within the App. This removes those conversations and their messages (including ratings, meme/GIF references, and any photos you uploaded to them in Cloud Storage) but does not delete your account, profile, or purchase data, and does not refund credits.
Deleting the App from your device removes the local settings, onboarding flag, personalization, age-gate/DOB record, and session data stored on it.
You can:
Depending on where you live, you may also have the right to request access to, correction of, deletion of, or a copy/export of your personal data; to object to or restrict certain processing; to withdraw consent; and to lodge a complaint with, or appeal to, your data-protection authority. We may need to verify your identity before acting on a request. The App does not currently offer an in-app data export, but you can request a copy of your personal data by emailing us (see Section 25).
The privacy disclosures we provide in Apple's App Store ("App Privacy") and Google Play's ("Data safety") are intended to match this policy and the App's actual behavior. The mapping below is a draft to be confirmed against the final store listings.
| Data type | Examples | Linked to you? | Purpose |
|---|---|---|---|
| Contact info | Email address | Yes | Account management, app functionality |
| Identifiers | Firebase UID, RevenueCat app user ID, Apple Sign In identifier | Yes | App functionality, purchases, security |
| User content | Chat messages, AI replies, titles/summaries, meme/GIF references and image inputs sent to OpenAI, photos you upload as attachments, message ratings/reactions, alias/personalization | Yes | App functionality (sent to OpenAI / stored in Firebase) |
| Purchases | Subscription status, product IDs, entitlement status, purchase/transaction metadata (via RevenueCat/Apple/Google) | Yes | App functionality, fraud prevention |
| Usage data | Token counts, credits, plan/model, usage events, ratings/reactions | Yes | App functionality, billing |
| Diagnostics | Logs, errors, IP/network data, attachment metadata, rate-limit data | Yes | Security, diagnostics, app functionality |
| Search history | Meme/GIF search queries sent to Klipy — typed by you or generated by the AI from the conversation | Yes | App functionality (meme/GIF search/attachment) |
| Photos or videos | Photos you take or choose to attach to a message are uploaded and sent to OpenAI. (Separately, the App saves watermarked memes/GIFs to your gallery via add/save access and does not otherwise read your library.) | Yes | App functionality (chat attachments) |
| Coarse location | Locale/country code (not collected as device location) | — | Meme/GIF localization |
| Notifications | Permission requested; no push token collected in the current version | — | — |
| Advertising data (free users) | IP address, device info, advertising/app identifiers where available, coarse location from IP, ad interactions, and diagnostics — processed by Google AdMob for non-personalized ads; paid plans are ad-free | Yes | Third-party advertising (Google AdMob) |
| Data used to track you | None identified in the current version (AdMob requests are for non-personalized ads and are not used for cross-app tracking) | — | — |
Free users see ads through Google AdMob, which requests non-personalized ads and may process advertising or app identifiers where available and permitted (see Section 14). The App does not present an App Tracking Transparency prompt or use cross-app tracking in the current version.
Your data may be processed in the United States and other countries by us and our service providers, including Firebase / Google Cloud, OpenAI, Klipy, RevenueCat, Apple, and Google. Where required, transfers are intended to rely on appropriate safeguards such as Standard Contractual Clauses or equivalent mechanisms.
We may update this policy from time to time. When we do, we will update the effective date above and, where appropriate, provide additional notice.
Questions or privacy requests? Email memechataisupport@gmail.com.
Jorge Jimenez