Privacy and your data

What happens to your Bubble export when you use LumiDevKit.

Parsing happens in your browser

When you upload a file to any LumiDevKit tool, the file is read and parsed by JavaScript running in your browser. It is not uploaded to a server for processing.

That is true for all six tools: the Database Visualizer, Workflow Tracer, Reusables Tree, Design System, Audit and JSON Sanitizer.

The one exception: saved schemas

If you explicitly click Save on the Database Visualizer, your schema is stored in our database, scoped to your account.

What is stored: your user_types and option_sets, the name you gave it, and your node positions.

What is not: the original file. If you uploaded a full application export, the pages, workflows, styles and settings are never sent anywhere.

This is opt-in. If you never click Save, nothing about your schema reaches our servers. See saved schemas.

There is also a browser-local draft, kept in your own browser's local storage so a refresh does not lose your work. That never leaves your machine.

No AI touches your data

LumiDevKit does not send your export, your schema, or any part of your app to any AI or language model.

The AI features in the docs work the other way round: we give you a prompt to paste into your own ChatGPT or Claude session. Whatever you choose to paste there is between you and that provider. Nothing flows from LumiDevKit to an AI.

What the Chrome extension does

The LumiDevKit extension writes to your browser's clipboard storage and drives the Bubble editor's own paste. It does not send your schema anywhere, and it has no server component.

Your export contains secrets

This is the part worth acting on rather than just reading.

A raw Bubble export contains live credentials: settings.secure in its entirety, plus API Connector configuration, Stripe keys and plugin keys under settings.client_safe.

If you are sending an export to anyone — a colleague, a contractor, a forum, an AI chat — run it through the JSON Sanitizer first. It deletes all of settings.secure and the credential-only keys under settings.client_safe, and keeps the API Connector call structure with every value replaced by <redacted>.

Analytics

We use PostHog for product analytics, hosted in the EU. In GDPR jurisdictions, analytics are opted out by default and only enabled if you accept via the cookie banner.

Analytics record how the app is used — pages visited, features clicked. They do not record the contents of your uploads, because your uploads never reach the server in the first place.

Account data

Creating an account stores your email address and authentication details, handled by Supabase.

We also keep one activity row per account: when you were first and last active, a visit count, and a two-letter country code read from the request header. No IP address, no user agent. It is written at most once every five minutes, and it tells us whether an account is being used rather than signed up and abandoned.

That row is account bookkeeping rather than product analytics, so it is recorded for every signed-in account whether or not you accepted the cookie banner above.

Deleting your account removes all of it.

The formal documents are at Terms of Service and Privacy Policy. If anything on this page appears to contradict them, the legal documents govern — and please tell us, because it means one of them needs fixing.

View this page as plain markdown