Privacy Policy
This describes exactly what Bubble collects, where it goes, and how to get rid of it. It was written against the actual code, not from a template.
What Bubble stores about you
Your account
- Your email address
- A display name and profile picture, if you signed in with Google or Apple
- A password hash if you signed up with email — never the password itself
- An identifier from Google or Apple if you used them to sign in
Your chats
- Every message you send and every answer you receive
- Chat titles, which are generated from your first message
- When each was created
- If you report an answer: the reason, optional details, review status, and time
Your projects
- Project names, descriptions, instructions, colors, archive state, and which chats belong to each project
Your answer credits
- Your answer-credit balance, total granted, and total spent
- Credit grants, reservations, completed charges, returned credits, reasons, and timestamps
- The credit ledger does not contain your message text
Your account security
- If you enable an authenticator: an encrypted authenticator secret, last accepted counter, setup and enablement times, and hashes of your recovery codes
- Short-lived sign-in and browser-approval records, including hashed secrets, challenge values, attempt counts, status, client type, the name shown for the requesting app, and timestamps
- A random installation identifier used only to synchronize account changes across your signed-in devices
What Bubble does not store: your card number, your bank details, your password in readable form, your location, your contacts, photos from your library, or an advertising identifier. The optional Google profile photo and random installation identifier described above are used only for your account and live synchronization. There is no analytics SDK, no advertising, and no tracking across other apps or websites.
Where your messages go
This is the part that matters most, so it's stated plainly: the web, mobile, and desktop apps send your requests to Bubble's hosted server. Bubble then sends the content needed for generation and embeddings to OpenAI.
That processing can include:
- The text of your message, and earlier messages in the same chat for context
- Instructions from the project containing that chat, when you have added them
- Relevant entries from Bubble's own reference knowledge base
- Your first message in a chat, to generate a title
- Your message text, to compute the numerical embedding used to search that knowledge base
- Your message and Bubble's final answer, to screen for disallowed or unsafe content
- For every answer, all eight role proposals, the shared draft, all eight ratings and reviews, and the final revision
Bubble's OpenAI API key is stored only on Bubble's server. It is never included in the website, mobile app, or desktop app. Every client uses HTTPS to reach the hosted Bubble API and pauses sending when that service is unavailable.
Other services contacted, and only for the purpose named:
- OpenAI — to generate answers, titles, embeddings, council proposals, reviews, ratings, final revisions, and bounded machine or installed-desktop actions you explicitly request
accounts.google.comandgoogleapis.com— to verify a Google sign-inappleid.apple.com— to verify an Apple sign-in- Resend — only if an email provider is deliberately configured to send a verification code
Apart from the OpenAI processing described above, chats are not sent to those services.
Your permission for AI processing
Before the mobile app lets you start an AI chat, it asks for your explicit permission to send your message and the earlier messages needed for context to OpenAI, a third-party AI provider. The permission screen names OpenAI, describes the data sent, and explains that it is used to screen chat content for safety and create Bubble's eight role proposals, shared draft, reviews, final answer, chat title, and knowledge-search embedding.
You can withdraw that permission at any time in Settings → AI & privacy. Bubble then pauses AI chat on that device and asks again before anything new is sent to OpenAI. Withdrawing permission does not delete chats that were already created; use Settings → Delete account to erase the account and all saved chats.
What Bubble does not do with your chats
- They are not sold, rented, or shared with advertisers.
- Bubble does not use them to train its own models.
- They are not published, and they never enter Bubble's reference knowledge base.
On that knowledge base specifically: it is built entirely from questions the system generates for itself and researches on its own. Nothing you type ever goes into it. When you delete your account, it is unaffected — because there was never anything of yours in it.
Who can read your chats
You can. So can Bubble's operator — the person who runs the service — through an admin screen that shows an account's chats and, if they ask for it, an AI-written summary of how that account has been used. This is stated plainly because it is true, and a policy that said otherwise would be worth nothing.
Three things constrain it, and they are enforced in the code rather than promised:
- Every access is recorded. Opening someone's chats writes a permanent log entry naming which administrator looked, at whose account, at what, and when. The record is written before the data is shown, and it survives the account being deleted.
- Only the operator. Access is limited to a list of addresses held in the server's configuration. There is no way to grant it by editing the database, and no other user of Bubble — however they sign up — can reach it.
- It is for support and safety. Answering a question you've asked for help with, investigating abuse of the service, and responding to a legal obligation. Not curiosity, not marketing, not building a profile of you.
Requesting an administrative summary sends recent messages through Bubble's hosted server to OpenAI, using the same service as chat. The summary is asked to describe how the account is used rather than repeat what was written, but you should assume anything you type could be read by a person who can access Bubble's operator account.
If that is not acceptable to you, do not put it in a chat. That advice is the same one given further down under Security, and it is the honest one.
Suspension and removal
Bubble's operator can suspend an account or delete it, along with everything in it, if it is being used to abuse the service or other people. A suspended account is signed out everywhere immediately and its email address can't be used to sign up again. A deleted one is gone permanently, on the same terms as deleting it yourself.
Safety filtering and answer reports
Bubble sends each new message and final answer to OpenAI's moderation service to screen for disallowed or unsafe content. If that service is temporarily unavailable, a narrow local critical-content check remains active and the eight-role answer path still follows Bubble's safety instructions. Disallowed input is not saved or counted as a completed answer. Disallowed generated output is replaced with Bubble-owned safety copy rather than shown or saved.
You can report one of Bubble's answers from its message menu. Bubble stores the selected reason, optional details you submit, the answer being reported, review status, and time so the operator can investigate and respond. Reports do not expose your chat to other users; Bubble has no public posts, user-to-user messaging, or user profiles. The operator can suspend accounts that abuse the service.
Payments
The current iPhone release contains no purchase, subscription, or virtual-machine screen. Bubble does not currently sell a recurring subscription. When the optional Bubble VM Pass is available, Apple handles purchases made in the iPhone app and the checkout provider shown on the web handles website or desktop-app purchases. The desktop app is obtained through Bubble's official askbubble.app/download page. Bubble never receives or stores your full payment-card details.
Bubble stores the minimum purchase record needed to restore and enforce the pass: your account, provider, product, provider transaction identifier, amount and currency, status, purchase and expiry dates, and compute used. Purchase identifiers remain as non-transferable ownership tombstones after account deletion when needed to prevent the same purchase being claimed by another account.
Virtual machine data
This feature is not available in the current iPhone release.
A purchased virtual machine stores files in a private cloud workspace linked to your Bubble account. Bubble stores machine lifecycle state, usage time, region, and provider resource references. Those internal references and access credentials are not shown to other users. Your screen is relayed through an authenticated Bubble connection; Bubble does not use the screen or files to train models.
If you explicitly ask Bubble in chat to operate your virtual machine, Bubble captures the current screen and sends the screen image, your instruction, and the results of requested machine actions to OpenAI so it can choose the next bounded action. This continues only for that open request and stops when the request finishes, you stop it, the connection closes, or an approval expires. Bubble asks for confirmation immediately before sensitive actions such as typing, clicking, changing files, or running commands beyond a small read-only set.
Bubble does not store the raw screenshots, command text, command output, typed text, or mouse coordinates from those actions in its database. It keeps a content-free safety record: the account and chat involved, action type, status, time, byte and step counts, exit code where applicable, model usage, and a cryptographic hash used to identify the action without retaining it. Your instruction and Bubble's final chat answer remain in chat history under the normal chat retention rules.
Files, settings, and browser history that you create inside the remote desktop remain in that private workspace until you delete them or the workspace reaches its displayed deletion date. Infrastructure providers process the workspace and encrypted network traffic only to host and deliver the feature.
Installed Bubble Desktop access
The installed Bubble Desktop app can offer optional access to a folder you choose and, on supported operating systems, screen, pointer, scrolling, and keyboard actions. Nothing is enabled merely by installing or signing in. You start a visible, time-limited access period, choose a project folder, grant any operating-system permissions, and approve each exact native action in a one-use confirmation. You can stop the access period at any time.
The desktop app processes the selected folder path, proposed process arguments, working directory, timeout, output, exit status, screenshots, pointer coordinates, scroll amounts, typed text, and named keys needed for an approved action. These action details are held in memory while the bounded request is active. Process results and, when the feature is available for the operating system, screen information needed to choose a next step may be sent through Bubble's hosted server to OpenAI. Bubble does not save the raw command output, screenshots, pointer coordinates, or typed text in its database.
Folder selection and argument validation reduce the scope of a request, but they are not an operating-system filesystem sandbox. Bubble Desktop does not claim to keep account tokens in the system keychain. The native access period, pending approvals, process handles, action results, and keep-awake assertion are held in memory and end when you stop, the lease expires, or the app exits. The operating system may keep its own permission, diagnostic, swap, or security records.
Bubble Terminal data
Bubble Terminal is one saved Bubble chat connected to your Bubble account. Messages you type are sent to Bubble's hosted server, saved in that chat, and processed under the same OpenAI rules as messages from the web, mobile, and desktop apps. Your projects, complete history, answer-credit ledger, and optional authenticator settings remain account data on Bubble's hosted server.
On the computer, Terminal stores the Bubble service address, one selected chat ID, and rotating access and refresh tokens in a JSON file inside the current operating-system user's application-state folder. It does not store a local transcript, password, authenticator secret, authenticator code, recovery code, device-approval secret, or PKCE verifier. The file is not stored in a system keychain: it is protected only by that operating-system user's file and profile permissions. On macOS and Linux Bubble requests mode 0700 for its directory and mode 0600 for the file; on Windows it inherits the current user's profile permissions.
The first Terminal sign-in creates a short-lived browser-approval record on Bubble's server. Bubble stores the requesting client and display name, a PKCE challenge, a hash of the separate device secret, status, attempt count, approval security state, account link after approval, and creation, expiry, approval, and redemption times. The browser URL contains only the public request ID. The separate secret and verifier stay in the Terminal process and are not stored after the one-use approval finishes or expires.
Closing Terminal does not delete the server-saved conversation. Signing out deletes the local session file; deleting the Bubble account deletes the associated Terminal chat and its server-side account records. The website and release host may retain ordinary request and security metadata needed to deliver the installer and release downloads.
How long it's kept
Your account, projects, chats, messages, and answer-credit ledger are kept until you delete them. There is no automatic chat expiry — a chat from a year ago is still there unless you remove it.
Expired login tokens and short-lived security challenges stop working automatically. Authenticator data remains until you disable it or delete the account. One-use browser approvals expire after their short displayed window and cannot be redeemed twice.
A virtual-machine workspace is kept while its pass is active and until the retention date shown in the app—normally 30 days after access ends—then the machine and files are erased.
Deleting your data
In the app: Settings → Delete account.
That erases your account, projects, chats, messages, answer-credit ledger, optional authenticator and recovery-code records, browser-approval records, and active sessions permanently. If you have a virtual machine, Bubble first stops and removes it and its workspace so no paid resource is left behind. That immediately erases its files and ends account-bound access; it does not automatically request a purchase refund. There is no undo. You can also delete individual chats at any time by holding one in the list.
Account deletion invalidates a Terminal session but cannot reach into every computer to
erase a local Terminal state file. Use bubble --logout on that computer to
remove it. The tokens in a leftover file no longer authorize access after the account is
deleted.
To request a copy of your data, or if deletion isn't working, email [email protected].
Security
Passwords are hashed with scrypt and a per-user random salt. Sessions use signed tokens that expire, and refresh tokens are single-use — a stolen one stops working once it's been used. Bubble's clients connect to the hosted API over HTTPS. The OpenAI API key stays in server-side configuration and is not distributed with any client application.
Optional authenticator secrets are encrypted with an authenticated server-side key; recovery codes and short-lived challenge tokens are stored as hashes. These safeguards do not make an unlocked or compromised computer safe, and Bubble Terminal's local token file is protected by operating-system user permissions rather than a keychain.
Your messages leave your device when you use Bubble. They are stored by Bubble as described above and sent to OpenAI when needed to provide Bubble's answer path. Bubble does not sell chats, use them for advertising, or use them to train its own models.
No system is perfectly secure, and Bubble is a small operation. Don't put anything in a chat you would be seriously harmed by losing control of.
Children
Bubble is not intended for anyone under 13, and accounts are not knowingly created for them. If you believe a child has created an account, email the address above and it will be deleted.
Changes
If this policy changes in a way that affects what happens to your data, the date at the top changes and the app will say so before the change takes effect.