Privacy
Last updated 15 July 2026.
Mandala is a fractal explorer that runs entirely in your browser. It has no accounts and no sign-up. The short version: the fractal you explore, the views you bookmark, and the links you share never leave your device unless you explicitly send them somewhere — the only optional exceptions are opt-in analytics cookies, a bookmark sync that stores the list in your own Google Drive only after you sign in for exactly that, and the public community gallery — which talks to Mandala's own server only when you browse it, publish a view, like an entry, or send a report.
What stays on your device
Bookmarks, saved views, the last view you were on, and small UI preferences are kept in your browser's own localStorage. They are never uploaded (unless you turn on the optional Drive sync below) — clearing your browser data removes them. You can also download the bookmark list as a plain JSON file and import it elsewhere; that file goes wherever you put it, nowhere else. Share links encode the view in the URL itself; nothing is stored on a server to make them work.
Optional: bookmark sync via your Google Drive
The Bookmarks dialog can sync your saved views across devices by keeping one small file in your own Google Drive (its hidden per-app storage area). This is entirely opt-in and has no Mandala server behind it:
- nothing from Google loads, and no request leaves your browser, until you press Sign in with Google in the Bookmarks dialog — the click is the consent for this feature, separate from the analytics choice;
- the sign-in asks for Drive's per-app data permission (
drive.appdata) — Mandala can read and write its own sync file and nothing else in your Drive — plus your basic public profile (name and photo, not your email), used only to show who is signed in; it is kept in memory for the session and never stored or sent anywhere; - what's stored is the bookmark list — names, view links, and save times (view previews are not uploaded). It lives in your Google account, under Google's terms; Mandala has no copy and no access to your account;
- the session lasts about an hour and is never stored — a new visit makes no Google request until you sign in again. Sign out revokes the grant immediately, and you can also revoke it (and delete the stored data) any time in Google Drive under Settings → Manage apps.
Mandala never links the Google sign-in to analytics (the two are independent opt-ins), and never learns your email or password — the sign-in happens between your browser and Google.
Optional: the community gallery
The community gallery is the one feature that talks to a Mandala server (a Cloudflare Worker). It does so only on your own actions, and each action sends only what you can see:
- browsing — opening the Locations dialog loads the list of published finds (titles, descriptions, view links, like counts) from the gallery. That is a plain read: no account, no cookie, and no identifier of yours is sent with it, and on deployments without a gallery backend nothing is requested at all;
- publishing — the Share menu's "Publish to the gallery…" entry submits the view you're looking at for review, and only when you press Submit. What is sent is exactly the view link (the same coordinates and settings a share link carries) and the title and optional description you typed — nothing else, and nothing while you merely open the dialog. Because the gallery is public, don't put anything in the title or description you wouldn't want published. A submission is reviewed by a maintainer before it appears (and may be declined or later removed);
- the publish dialog includes a Cloudflare Turnstile anti-bot check. Its script loads only when that dialog opens, and it may process technical signals (such as your IP address) to tell humans from bots — see Cloudflare's privacy policy;
- liking — the first time you like (or report) an entry, the gallery issues your browser a random anonymous token (so one device counts once per entry). It is stored on your device, contains nothing about you, is not an account, and is never linked to analytics; it does stay on your device until you clear your browser data, which discards it. It is sent only with your like/unlike clicks and your reports;
- reporting — the per-entry Report control sends the reason you type together with the same anonymous token (so one device files at most one report per entry), for a maintainer to review;
- anything you type into a title, description, or report reason is stored as text for the maintainer (and, once published, shown publicly) — so don't put personal details in them;
- how long it's kept — a submission that is never reviewed is deleted after 30 days; reports are deleted after 90 days; published entries and their like counts stay until the maintainer removes them or you ask for removal;
- gallery data is stored on Cloudflare (Workers and the D1 database), which processes traffic (including IP addresses, in its own provider logs) as the hosting provider. To ask for a submission to be removed, use the contact address below.
Analytics (Google Analytics)
If — and only if — you press Accept on the cookie banner, Mandala loads Google Analytics 4 (gtag.js) from Google. It's there so I can see how many people visit and which features get used, which helps me decide what to work on next. Nothing loads before you accept, and the app behaves identically whether you accept or decline.
When enabled, Google Analytics:
- sets first-party cookies named
_gaand_ga_<id>(default lifetime ~13 months) to recognise a returning browser; - records which app features you use — Mandala sends named feature-usage events, plus a coarse "a render failed" health signal (the failure kind and which rendering mode it happened in; never your view's coordinates or any error text) so persistent rendering problems are visible; automatic page-view tracking is turned off (
send_page_view: false) — plus the approximate location (country / region, derived from a truncated, anonymised IP) and device / browser type that Google attaches to any event; - processes this through Google as a third party. See Google's Privacy Policy and how Google uses data from sites that use its services.
No directly identifying information (your name, email, or precise location) is collected, and Mandala does not sell or share data, run advertising, or use any other trackers.
Your choice, and changing it
Analytics is off by default. Your decision is remembered in localStorage so you aren't asked every visit. You can change it at any time — declining stops Google Analytics from sending anything further and clears its cookies on this device.
You can change your choice at any time with the Cookies link in the app's footer — or in its ⓘ info panel on phones — which re-opens the consent banner.
Legal basis & contact
Analytics is processed on the basis of your consent (GDPR Art. 6(1)(a); Swiss FADP), which you may withdraw at any time as above. For any privacy question, or to request more detail, email privacy@mandalart.net.