Local-first privacy

Privacy and Browser Storage

Learn what Moonlight Peaks Tools stores locally, how Gift Finder JSON files work, and how self-hosted Umami measures anonymous site visits.

Dataset: prelaunch Last verified: July 15, 2026 UTCPreview · search indexing disabled

Moonlight Peaks Tools has no visitor account system, newsletter, checkout, comment form, or server-side profile database. The active personal feature—the Gift Finder observation log—stores its data in the visitor’s own browser. Saving or importing a log does not submit it to this site.

Information stored by the Gift Finder

When a visitor chooses Save observation, the tool writes a JSON document to browser localStorage under the key moonlight-peaks:gift-log:v1. A saved row contains:

  • an internally generated row identifier;
  • the selected item and observed reaction;
  • an optional observation date;
  • an optional private note, limited by the interface to 180 characters; and
  • a creation timestamp generated by the browser.

The tool does not ask for a name, email address, game-account identifier, or save file. Do not place sensitive personal information, passwords, support case numbers, or private account details in the optional note field.

Browser storage belongs to the browser profile and device where it was created. Other people using the same browser profile may be able to see it. Private-browsing modes, storage limits, browser cleanup, extensions, device loss, or browser settings may prevent storage or erase it. The site cannot recover a lost local log.

JSON export and import

Export JSON creates a file in the browser from the currently loaded log and starts a local download named moonlight-peaks-gift-log.json. The file is not uploaded to Moonlight Peaks Tools. After export, the downloaded copy is controlled by the visitor and by any backup, sync, email, or file-sharing service they choose to use.

Import JSON reads the file selected through the browser’s file picker, checks that it uses the supported gift-log schema and version, validates its rows, and replaces the current local log with the imported entries. The current parser rejects unsupported structures and files with more than 500 rows. The selected file is read on the device; the site has no upload endpoint for it.

Treat an exported file as private if its notes contain personal context. Review it before sharing and delete copies from downloads or cloud backups when they are no longer needed.

Deleting local data

Each displayed row has a Delete control. Clear local log asks for confirmation and then replaces the stored entries with an empty list. A visitor can also remove the site’s browser storage through their browser’s site-data or privacy settings; that removes the storage key itself.

There is no server account to delete and no server copy for this project to retrieve. Clearing one browser profile does not delete JSON files already exported or copies held in another profile, device, or third-party sync service.

Umami analytics, advertising, and cookies

As of July 15, 2026, the site uses a self-hosted Umami tracker loaded from a.moonlightpeaks.net. Its purpose is to measure aggregate site use. Default metrics can include the site hostname, page path and query parameters, page title, referrer, browser, operating system, device category, screen dimensions, browser language, and country, region, or city derived for the visit. Umami documents that the request IP address can be used to derive location but is not stored. Query parameters may also expose UTM values or advertising click identifiers when they are present in a visited URL, so visitors should not place private information in a URL.

Umami’s published privacy documentation states that its tracking code does not use cookies, stores no personally identifiable information, and anonymizes the collected analytics data. This site has not enabled session replay, custom event attributes, or a custom visitor identity in the current build.

The tracker script is https://a.moonlightpeaks.net/jquary.js. Umami’s tracker configuration sends analytics requests back to the script’s host by default. The public website identifier attached to the script is used to assign the page view to this site; it is not a visitor account or game identifier.

The current self-hosted setup does not declare an automatic expiration period in this static site. Umami’s retention documentation states that self-hosted analytics data is retained indefinitely unless it is manually deleted. Aggregate records should therefore be treated as retained until the instance operator removes them or separately configures a deletion process.

The published site code still includes no advertising network, affiliate tracker, cross-site marketing pixel, account login, or newsletter tracker. It does not intentionally set an application cookie, and the project receives no commission from storefront links. Browser extensions or network controls may block the analytics request without preventing the guides and calculators from working.

The site is intended to be served through Cloudflare Pages. Like other web hosting and network providers, Cloudflare may process request metadata needed to deliver and secure a request, such as an IP address, requested URL, time, user agent, and security signals. That infrastructure processing is separate from both the Gift Finder browser log and Umami’s aggregate site analytics, and is governed by Cloudflare’s own policies and account configuration.

The response policy currently uses strict-origin-when-cross-origin, so a browser may send the site’s origin—not the full page path—to an external site when a visitor follows an outbound link, subject to the browser’s own behavior and privacy settings. External sites apply their own privacy policies.

Future changes

If the site later changes analytics behavior or adds a submission form, account, cloud synchronization, advertising, session replay, or another server-side data feature, this page must be updated before that feature is enabled. The update should identify the provider, data, purpose, retention, sharing, and available controls. The current policy does not grant permission to add those services silently.

For rights or privacy concerns about material displayed on the public site, see Takedown Requests. The Contact page accurately lists the public intake routes currently available.