Privacy Policy
Last Updated: May 2026
1. No Centralized Data Collection
The Linked Lamp is a decentralized, open-source Do-It-Yourself (DIY) hardware and software project. The
maintainers, creators, and contributors of the Linked Lamp project do not own, operate, or maintain
any backend servers that collect, store, process, or transmit your personal data. We do not
collect telemetry, IP addresses, usage statistics, or device identifiers.
2. Local Execution, Plaintext Storage, and Unique IDs
All setup and configuration tools provided on this website execute 100% locally within your web browser. When
you use the Setup Guide or the Web Serial API (WiFi Configuration & Serial Tool) to configure your lamp:
- Your Wi-Fi SSID, Wi-Fi password, MQTT broker credentials, and personal identifiers are written directly
from your browser to your physical ESP32 device via USB.
- No configuration data is transmitted over the internet to our servers.
- The Web App dashboard uses your browser's LocalStorage and IndexedDB to cache user interface settings,
presets, and your raw MQTT connection credentials (broker URL, username, and password). This data
remains on your local device and is never uploaded to the project maintainers.
- The "Unique ID" (UID) Sharing Risk: The Web App encodes your MQTT broker host,
username, password, and device ID into a single string called the "Unique ID" (UID). This is designed as
a convenience feature to easily link your partner's device. You must acknowledge that this UID
is formatted using standard Base64url encoding, which is NOT a secure form of encryption.
Anyone with access to your UID can instantly decode it to reveal your raw, plaintext MQTT broker
credentials. Treat your Unique ID as highly sensitive, secret information. Never share it over public,
unencrypted, or untrusted communication channels.
3. Third-Party Service Providers
To function, the Linked Lamp relies entirely on third-party infrastructure. None of these third-party
services are affiliated with, endorsed by, or operated by the Linked Lamp project. You
acknowledge that your data is subject to the privacy practices of these third parties, for which we have no
control or liability:
- MQTT Brokers (e.g., HiveMQ, Adafruit IO, AWS IoT): Your lamp communicates over the
internet by routing messages through your chosen MQTT broker. Payloads (color hex codes, tap durations),
connection metadata, and your home network's IP address are visible to and processed by your broker.
- Public Content Delivery Networks (CDNs - unpkg.com & jsDelivr): This static website and
the Web App dashboard dynamically load open-source scripts and UI components (including
mqtt.js, iro.js, and esptool-js) from public CDN networks at
runtime. When your browser requests these libraries, your IP address, user-agent string, and referrer
headers are transmitted to and processed by unpkg.com and jsdelivr.net in
accordance with their respective Privacy Policies.
- Web Hosting & Domain Routing (GitHub Pages & Cloudflare): This static website and the
Web App are hosted via GitHub Pages, with domain routing provided by Cloudflare. Both GitHub and
Cloudflare may collect standard server access logs, including your IP address and user-agent string, in
accordance with their respective Privacy Policies.
- Over-The-Air (OTA) Updates (GitHub): The firmware does not periodically or automatically check
for updates. Instead, updates are strictly triggered on-demand when an update command is sent via the Web App. When
applying an update, the lamp downloads the binary from GitHub's servers, which exposes your IP address to GitHub.
- Public DNS (Google & Cloudflare): To ensure reliable connectivity, the Linked Lamp
firmware explicitly configures your ESP32 to use public DNS servers (
8.8.8.8 provided by
Google and 1.1.1.1 provided by Cloudflare). This means your lamp's DNS queries are routed
through and processed by these entities.
4. Data Security Risks and Firmware Limitations
Because this is a DIY project, it is your responsibility to secure your MQTT broker and home network. You
must understand the following security architecture decisions implemented in this open-source project:
- Plaintext MQTT vs. TLS: If you configure your lamp to use unencrypted MQTT (port 1883)
rather than MQTT over TLS (port 8883), your network traffic will be transmitted in plaintext and may be
intercepted by network operators or malicious actors.
- Bypassed Server Certificate Validation (setInsecure): To enable a flexible,
broker-agnostic design, prevent connectivity failures when root CAs expire, and bypass dependencies on
local clock synchronization (NTP), the firmware is explicitly programmed to disable SSL/TLS Certificate
Authority (CA) validation (by calling
espClientSecure.setInsecure()). While the
connection is encrypted, the lamp does not verify the identity of the remote server.
Consequently, the firmware is vulnerable to Man-in-the-Middle (MitM) certificate spoofing, interception,
and credential hijacking if connected to compromised, public, or untrusted network environments. By
compiling and flashing this open-source software, you assume all risks associated with this security
compromise. We are not responsible for any unauthorized access to your devices, network, or data.
- Unauthenticated & Unsigned Remote OTA Updates: The firmware is programmed to process Over-The-Air (OTA) update commands pushed over your MQTT trigger feed. Because this update channel is entirely unauthenticated, lacks cryptographic binary signature verification, and bypasses TLS certificate validation, anyone with write access to your MQTT topic can force your lamp to flash arbitrary, unverified third-party binaries. This creates a risk of remote code execution, which could be used to compromise your local home network. By deploying this software, you acknowledge and assume this risk.
5. Open Source Transparency
The source code for the Linked Lamp firmware and web interface is publicly available under the GNU
General Public License v3.0 (GPLv3). You are encouraged to review, audit, and modify the code
to suit your personal privacy requirements.
Return
to Home