Docs / Your documents
Privacy and your data
Last updated:
Prettify keeps your documents on your device. This page explains what stays local, the full list of network requests Prettify makes, and how to control analytics and clear your data. The Privacy Statement is the authoritative version; this page is a summary.
What stays on your device
Parsing, editing, queries, and conversion run locally in your browser. Prettify does not upload your file contents to a server for processing.
Prettify stores this data on your device:
- IndexedDB: your current document and your saved history, compressed. Prettify stores up to 30 documents on every plan. Free shows the 5 most recent; Pro shows all 30 and keeps up to 50 versions per document.
- localStorage: your theme, your analytics choice, your Pro license key if you activated one, a copy of your open tabs to reopen after a restart, and a few one-shot flags.
- sessionStorage: your open editor tabs. These survive in-app navigation and clear when the browser session ends.
A share link is the one exception. It carries a copy of your document to whoever you send it to. See Share links.
Network requests Prettify makes
Prettify sends data over the network only for the features below. Each request sends only what that feature needs.
| When | What is sent | Who receives it |
|---|---|---|
| You activate Pro, and once a week after | Your license key | Prettify Worker, then Lemon Squeezy |
| You create a Pro short share link | The compressed document and your license key | Prettify share service (Cloudflare) |
| You submit a bug report | Your report text, optional email, optional screenshot, and technical context | Prettify Worker |
| You load a JSON Schema preset (Pro) | A schema request | json.schemastore.org |
| You load a JSON Schema from a URL (Pro) | A schema request | The host you typed |
| You use Load from URL | The URL you typed | The host directly, then api.allorigins.win or corsproxy.io if the host blocks CORS |
| You select Load images in a feed | An image request | Each image host |
| You start checkout | A new checkout tab opens | Lemon Squeezy |
| Usage events, unless turned off | Event names and coarse metadata | PostHog |
| The desktop app checks for an update, on launch and every 6 hours | A request for the update file | GitHub release downloads |
A Pro short share link uploads your document; an inline (free) link does not. See Share links for the difference.
Analytics and how to turn it off
Prettify sends a small set of anonymous usage events to PostHog to help decide what to build.
Prettify sends:
- Event names, such as
format_loadedorpaywall_shown. - Coarse metadata: format type, a size bucket, platform (web or desktop), and app version.
- Your IP address, which reaches PostHog with each request. Prettify turns off GeoIP, so PostHog does not use it for location.
- A random anonymous ID, kept in your browser's localStorage (not a cookie), so a return visit counts as the same person. Turning analytics off deletes it.
- After purchase, a SHA-256 hash of your license key, so purchasers can be counted without storing the key.
Prettify never sends your file contents, filenames, search queries, jq, SQL, or XPath expressions, your email, or your raw license key.
Defaults differ by platform:
- On the web, you are opted in. You can turn it off any time.
- On the desktop app, you are opted out. A first-launch modal asks you to opt in.
To change your choice, open Settings, go to Privacy, and use Share usage data. Turning it off resets your identifier and stops all event capture.
Clear your local data
You control everything stored on your device:
- To clear history, open the History page and select Clear All.
- To remove your license key, open Settings, go to License, and select Deactivate.
- To remove everything, clear the site data for prettify.tools in your browser, or uninstall the desktop app.
Full statement
The Privacy Statement is the complete and authoritative version. It lists every event, where data is hosted, how to request deletion, and how to contact us.