This privacy page explains the data flows currently implemented on theharsh.xyz. It describes the site as it exists today; it does not invent retention periods, contractual guarantees, or controls that are not present in the code. If these features change, this page should change with them.
Analytics
The site loads Umami analytics from cloud.umami.is to understand aggregate site usage. Requests to that service may include ordinary web-request information such as the requested page, browser details, referrer, and IP address as processed by the provider. This site does not expose an account dashboard where visitors can inspect or delete Umami records directly. Browser privacy controls, content blockers, or blocking the analytics host may prevent the script from loading.
Last-visitor location
When the homepage loads, it calls /api/locate. The server receives the request IP address and sends it to ip-api.com to derive an approximate city and country or region. It then stores a generalized location label in Upstash Redis under a last-visitor key. The /api/last-visitor endpoint reads that label so the footer can display the most recent approximate location. The locate response also returns the request IP address to the requesting browser, although the page does not display it. This feature is not intended to determine a street address or precise physical location.
Local preferences and external services
The light or dark theme choice is saved in your browser using localStorage under the theme key. It stays on your device unless browser settings, extensions, or manual clearing remove it. The site also links to external services such as GitHub, LinkedIn, X, project websites, and the employer website. Those destinations have their own privacy practices and receive a normal web request when you follow a link.
Questions
Do not send secrets, passwords, financial records, or other highly sensitive information through the public contact channels. For a privacy question about this site, email msg.theharsh@gmail.com with the page and behavior involved. Because the current implementation does not establish a fixed retention schedule for Upstash or Umami data, no specific deletion timeframe is promised here.