Site information

Privacy,
without guesswork.

johnnyli.dev is a personal portfolio and project ecosystem. It does not use advertising, behavioral tracking, or analytics. Some features store small amounts of information in your browser, and the infrastructure needed to serve the sites necessarily processes ordinary network requests.

This page describes those boundaries in plain language.

Last updated October 3, 2026

The public portfolio is designed to avoid collecting visitor profiles.

The portfolio has no user accounts, advertising, behavioral trackers, analytics SDKs, or visitor database. Pages are served as static content.

Opening pages still creates ordinary network requests. The hosting, delivery, and security infrastructure involved in those requests necessarily receives technical information needed to deliver the site, such as connection addresses, requested resources, and request timing.

A functional preference can follow you across supported johnnyli.dev sites.

If you choose System, Light, or Dark in Settings, the selection is stored in your browser's local storage and in a functional jl-theme cookie scoped to .johnnyli.dev. The cookie expires after up to one year.

The stored value is only the appearance choice. It is not an advertising identifier, analytics identifier, or behavioral profile. If you never change the appearance preference, the default System setting does not need to be written.

Network Diagnostics is built around local result storage and explicit measurement traffic.

In your browser

Recent results stay local.

The browser keeps up to 12 recent diagnostic reports and remembered higher-data-test confirmations in local storage. Imported JSON reports are read in the current browser tab rather than uploaded to a project result database. Clearing site data removes the browser-side history and confirmations.

During a test

Measurements require network traffic.

Generated transfer traffic, timing requests, and edge/network metadata pass through project endpoints on Cloudflare. Cloudflare necessarily receives the connecting address and ordinary request metadata. The application does not return your public IP address as a result field or submit completed results back to a project-owned results database.

On your computer

Native reports can contain more detail.

The desktop application and command-line probe write reports locally. Native diagnostics can contain public route information, interface and system details, Wi-Fi characteristics, and other troubleshooting context. Reports created with optional local identifiers enabled can contain private network information and should be treated as sensitive diagnostic material.

Full and Stress service checks intentionally contact the named external services shown by the application. Those providers necessarily see the originating connection for the request. Quick mode does not run that service battery.

Project-level Worker observability is disabled. That prevents project-level Worker request logs from being enabled, but it does not make the underlying infrastructure traffic invisible.

Read the technical privacy model

No application can be served over the Internet without network infrastructure processing traffic.

Cloudflare provides delivery, security, and compute for applicable project subdomains and therefore processes the network traffic and request metadata required to provide those services.

Links to services such as GitHub and LinkedIn leave johnnyli.dev. When a project deliberately contacts another service as part of a requested feature, that interaction is described in the relevant product interface or documentation. Those services operate under their own privacy practices.

Private tools have different storage requirements from the public portfolio.

Some authenticated or private services under johnnyli.dev process information intentionally supplied by their authorized user and may store that information to provide the requested application functionality.

Statements on this page about a specific public tool—such as Network Diagnostics not retaining completed results in a project results database—should not be read as a blanket claim that every private application under the domain stores no user-provided data.

Questions

Want to know how something is handled?

If a privacy boundary here is unclear, contact me and I can explain the implementation behind it.

johnny.li2003@gmail.com