Appearance
Cookies, analytics & data stored in your browser
This page covers the cookie/analytics choice and everything the app remembers on your device, so you know exactly what "clear site data" would reset, and what analytics does and doesn't run.
The cookie banner (web only)
On the web app, builds with analytics configured show a one-time banner along the bottom on your first visit: We use cookies for analytics, with Accept and Decline buttons and a link to the Privacy Policy.
- Until you decide, browser analytics is fully off: nothing is sent from your browser. (The two server-side signals described under What analytics is (the launch ping and the sign-up record) don't depend on this choice.)
- Accept enables it; Decline keeps it off.
- Essential features work identically either way; the choice only controls optional product analytics.
The banner never appears in builds without analytics configured (there's nothing to consent to).
Changing your mind
Account menu (top-right) → Cookie preferences… reopens the choice any time. The dialog states your current status (Analytics are currently enabled. / Analytics are currently disabled. / You haven't made a choice yet.) and offers Enable analytics / Disable analytics; withdrawing consent is as easy as granting it. Re-picking your current choice does nothing.
The desktop app is different
The desktop app never shows the banner or the Cookie preferences item: accepting the installed-app terms is the consent there, and analytics runs by default.
What analytics is
When enabled, the app sends product-usage analytics (PostHog, EU-hosted): which features get used, app launches, which library parts you pick (the brand and model of a panel, processor, switch or card, never your project's contents), and similar product signals. Automatic click capture is off. Session replay is on, but the 3D view (canvas) is never recorded, every text field you type into is masked, and web addresses are stripped of any sign-in codes or tokens before anything is sent. Replay itself does not even start until a sign-in link's one-time code has been used and cleared from the address bar. So replays show how the interface is used without capturing your project data or credentials. Replay follows the same consent choice as the rest of analytics (off until you Accept on web; on by default in the desktop app). Every analytics event also carries the app version and the build it came from (where the build was made and a short code naming the exact release, the same pair the About panel shows), so a fault can be traced to one specific build rather than a version number two different builds share. Separately from the consent-gated analytics, cloud-connected builds send a once-per-session launch ping (app version + platform) that powers the app's own usage statistics. Likewise, creating an account (by any sign-in method) records a single sign-up event on the server: your account id and which method you used (Google, Apple or email), never your email address or name. It's recorded there because the account itself is created on the server, not in your browser.
What the app stores on this device
Everything the app remembers locally, and what clearing it would reset:
| What | Where | What it holds |
|---|---|---|
| Preferences | browser storage (led-fyi:preferences) | Language, units, the wiring-sheet colour palettes and the main/backup colour pair, any data-path pattern defaults you saved, your cable-stock presets, and your drawing templates (this browser's copy; when you're signed in they're also saved to your account); see Preferences and Cable stock |
| Template sync record | browser storage (led-fyi:template-sync:…) | Which of your template changes this browser has already sent to your account, so changes made offline are sent when you reconnect (cloud builds, while signed in) |
| Inspector folds | browser storage (led-fyi:inspector-sections) | Which Inspector sections you've collapsed, remembered per kind of thing; see Interface overview |
| 3D display settings | browser storage (led-fyi:previs) | Render style, LED look, fill factor, brightness, background, floor, floor size and grid; see Render styles & LED look |
| Theme | browser storage (led-fyi:theme) | System / Light / Dark; see Theme & appearance |
| Cookie choice | browser storage (led-fyi:consent) | Your Accept/Decline decision |
| Sidebar state | browser storage (led-fyi:left-sidebar-open) | Whether the left sidebar is collapsed |
| Autosave slot | browser storage (led-fyi.autosave.v1) | The continuously-autosaved working copy of the open project; see Projects, saving & autosave |
| Local version history | IndexedDB (led-fyi-vcs) | The local project's committed versions, so undo history and versions survive a reload, in the browser and the desktop app alike |
| Equipment library cache | IndexedDB (led-fyi-equipment-cache) | The last fetched copy of the equipment library, so it's available instantly and offline |
| Sign-in session | browser storage (sb-…-auth-token) | Your Supabase session token (cloud builds, while signed in); see Accounts & signing in |
| First-launch timestamp | browser storage (ledfyi.launched.v1) | When the app first ran on this device (cloud-connected builds; used for the anonymous launch ping) |
| Session flag | session storage (ledfyi.launch-beacon.session.v1) | Marks the launch ping as sent for this session; gone when the tab closes |
| Analytics identifiers | browser storage + cookie (ph_…) | PostHog's anonymous/identified ids, only after consent on web; by default on desktop |
Private browsing & clearing site data
- Private/incognito windows: everything works for the session, but nothing persists: settings, the autosave slot and local history are gone when the window closes.
- Clearing the site's data resets all of the above at once: preferences (including this browser's copy of your drawing templates), theme, 3D display settings, Inspector folds, your cookie choice, the sidebar state, and the autosave slot plus the local version history. Signed in, your templates come back from your account the next time you sign in; signed out, they're gone.
Offline work lives in this storage
When you're working without the cloud (signed out, offline build, or the desktop app before signing in), the autosave slot and the local version history are your project. Before clearing browser data, download a .ledproj copy via File → Download project; see Project files. Cloud-saved projects are unaffected; they live on the server.
Why a setting can reset itself after an update
The settings stores (preferences, 3D display, cookie choice) are version-tagged. When an app update changes what a stored setting means (or its default needs to reach everyone), the update deliberately discards the old stored value and re-baselines it to the new default. So very occasionally a preference snaps back to default after an update: that's intentional re-baselining, not data loss. (For the cookie choice, that would mean the banner simply asks again.)

