Privacy & browser storage

Last updated: October 22, 2026

This is Leo Deng’s personal website. This notice covers leodeng.dev and its classic edition at old.leodeng.dev.

Your preferences

Your browser can remember your theme, language, and the interests you select on the Interests page using local storage. These settings stay in that browser until you clear them.

Choosing the full site on an older device sets a site_view cookie for 30 days so you are not redirected back to the classic site. The classic site also uses session storage to remember why you were redirected during that tab’s session.

Hosting & connection information

Cloudflare delivers and protects this site and its media. It processes connection information such as IP addresses and request headers, and may use security cookies depending on the protection features in use. The IP & connection page displays information about your own request.

Cloudflare handles information under its own policies. I do not set a separate retention period for Cloudflare’s operational records.

The optional Apple Music player

The About page leaves Apple’s player unloaded until you choose “Load Apple Music player.” Loading it allows Apple to receive connection and player-usage information and use cookies or similar local storage. Apple describes collection even when you are not signed in.

The choice is not saved between visits. You can unload the player on the page; that does not erase data Apple has already stored. You can also open the playlist directly on Apple Music. The classic edition provides links instead of embedding the player.

Other external services

Depending on the page, your browser may request Google Fonts, public data from GitHub, the embedded X timeline on the home page, or cover art from external providers such as Cover Art Archive. Those providers receive connection information when your browser contacts them. Lyrics are retrieved server-side from a self-hosted mirror, with public LRCLIB as a fallback; your browser requests lyrics from this website. Links to other websites take you to services with their own privacy practices.

The site’s own browser storage supports the features described above. I have not added advertising trackers to the site’s application code.

AI chat and abuse controls

AI chat sends your message, up to four recent completed exchanges and selected public site content to DeepSeek. Do not submit personal or sensitive information. The model has no tools, shell access or connection to my homelab. Its displayed thinking and answers are generated text and may be inaccurate.

A random HttpOnly conversation cookie separates browser conversations. Cloudflare stores up to 20 exchanges per conversation, including thinking and response statistics, until the next Beijing midnight. Each IP can send five messages per Beijing day, with 50 public messages sitewide. Accepted attempts may count even if generation fails. Admin-whitelisted IPs bypass daily caps but still have traffic, concurrency and response-size limits.

Cloudflare supplies the client IP for quota and abuse checks. Quota records older than seven days are pruned on subsequent chat submissions. Malformed requests and blocked curl or Python user agents can create a permanent IP ban, with the reason and timestamp, until an administrator removes it. Administrators can manage bans and whitelisted IPs, reset limits or disable chat. IP addresses and user agents are not sent to DeepSeek.

Your choices & contact

You can leave the Apple Music player unloaded and read the site normally. Browser settings let you inspect, block, or clear cookies and local storage. Clearing saved preferences resets them.

For questions about this site’s privacy practices, email me.