Proposal to add telemetry data to xLights #6367
Replies: 2 comments 1 reply
|
I think it needs to be OptOut so we get actual data. If opting out, we should have a prompt and a persistent banner to remind them why it is important. We should also collect a one-time opt-out "hit" (needs to be serialized - see below) |
|
@cybercop23 great feedback, thank you — a few quick responses: Network topology — Good catch, missed that entirely. Adding it to Phase 2. Proposed buckets: Direct, Single proxy, Multiple proxies — does that cover it? Cross-install identity — Rather than any hardware fingerprinting, I'd propose an opt-in user-generated sync code the user can copy across installs. Keeps it voluntary with no device identification. Open to other ideas here. Dynamic schema — 100% agree and will design for it from day one. Schema lives in a versioned manifest file in the repo, changes go through a PR, and XLights prompts the user when new fields are added. No install required to expand collection. One more idea to throw in — since this is an open source project, would there be any objection to publishing an aggregated, read-only public dashboard of the results? Raw events stay private but the community gets to see the trends. Feels like it fits the spirit of xLights and would build a lot of trust around the telemetry itself. |
Uh oh!
There was an error while loading. Please reload this page.
Proposal: Anonymous Telemetry & Usage Analytics for XLights
Discussion Type: Feature Proposal
Author: Nick Scilingo - Focusedonsound
Date: May 2026
Status: Open for Community Feedback
Overview
This proposal suggests adding an opt-in anonymous telemetry system to XLights to help the development team better understand how the software is being used in the real world. The data collected would be entirely anonymous, never contain personally identifiable information, and would be controlled by the user at all times via a clear opt-in/opt-out preference.
The goal is simple: make better development decisions backed by real usage data rather than assumptions. Knowing which features are most used, what hardware the community runs, how large shows are getting, and where pain points exist will help prioritize the roadmap more effectively.
I am volunteering to do the full implementation work for this feature.
Motivation
Right now, the XLights development team has limited visibility into how the software is actually being used across the community. We rely on forum posts, GitHub issues, and anecdotal feedback — which skews toward users who are vocal about problems and underrepresents the silent majority.
Anonymous telemetry would allow us to answer questions like:
This is standard practice for open source projects of this scale. Examples include VS Code, Firefox, KiCad, and many others — all of which are transparent about what they collect and why.
Privacy & Consent Principles
These are non-negotiable foundations of the implementation:
Preferences → Generallabeled "Send anonymous usage data to help improve XLights" and can be changed at any time.Proposed Backend
PostHog Cloud (Free Tier)
PostHog is an open-source analytics platform with a generous free cloud tier (1 million events/month, no credit card required). It supports anonymous event tracking by design, has a clean dashboard for visualizing data, and the XLights project would retain full control of the data.
If the community prefers a fully self-hosted solution, this can be migrated to a self-hosted PostHog instance or a lightweight custom endpoint at any time.
Technical Implementation
Language/Framework: C++ / wxWidgets (matching the existing XLights codebase)
New files:
TelemetryManager.h/TelemetryManager.cpp— singleton class managing the event queue and HTTP dispatchTelemetryOptInDialog.h/TelemetryOptInDialog.cpp— first-launch consent dialogExisting files modified (minimally):
xLightsMain.cpp— init call on startup, flush call on shutdownxLightsXmlFile.cpp— hook for sequence open eventsTelemetryManager::TrackEvent()calls at key pointsTransport: libcurl (already a dependency) posting JSON to PostHog's
/capture/endpoint on a background thread. Never blocks the UI.Estimated effort: ~2 weeks for a single developer (me).
Proposed Data Points
The following sections describe every data point under consideration. I have organized these into a phased rollout to allow the community to review and approve each phase before implementation proceeds. Alternatively, all phases can ship together in a single release — I have listed both options below.
Option A — Phased Rollout (Recommended)
Phase 1 — System Environment & Version (Low sensitivity, high value)
These are the safest, least intrusive data points and provide immediate value for infrastructure decisions.
2024.14Windows 1122H2x64/ARM6416–32 GBIntegrated/Dedicated1920x10802Desktop/Laptop/Mini PCa3f2c...2026-05Phase 2 — Show Scale & Hardware
10,000–25,0004–6["Falcon", "WLED"]["E1.31", "DDP"]10–25truexScheduler/FPP/ManualPhase 3 — Sequencing & Feature Usage
6–153–5 minOwn/Purchased/Mix["3D Preview", "SuperStar"]["Chase", "ColorWash"]3–5 years6–10 yearsImmediate/Wait weeksPhase 4 — Stability & Performance (Optional, most sensitive)
falseFast/Slow30–60 minOption B — All Data Points at Once (Single Release)
All data points from Phases 1–4 above are collected from day one in a single implementation. This is simpler to ship but means the community reviews and approves the full scope upfront. The same privacy guarantees apply regardless of approach.
What Will NOT Be Collected (Ever)
To be absolutely explicit, the following will never be collected under any circumstances:
Data Management & Governance
My Commitment
I am volunteering to:
TelemetryManagerC++ implementationI am not asking the core maintainers to do the work — only to review, give feedback, and merge if the community is supportive.
Open Questions for the Community
I welcome all feedback, concerns, and suggestions. My goal is to build something the community trusts and that genuinely helps make XLights better for everyone.
Thank you!
All reactions