---
title: "Privacy Policy: Local Data, Telemetry & Network — TinyMD"
description: "Learn how TinyMD protects your privacy. Anonymous usage stats are on by default and cover only 4 events; documents, filenames, and paths are never uploaded."
canonical: "https://tinymd.app/privacy"
language: "en"
---

# Privacy Policy

Effective Date: September 28, 2026

- Your files stay local: TinyMD never uploads document text, titles, word counts, or paths.
- Anonymous usage stats on by default: 4 events and a random device UUID, nothing else. Turn it off anytime in Settings ▸ Privacy.
- Limited network use: Usage stats, update checks (can be turned off), and downloads you start yourself.

## When the app goes online

1. Anonymous usage stats: Sends one small GET request to button.click when one of the 4 events below fires. On by default; turn it off in Settings ▸ Privacy to stop all reporting immediately.
2. Software updates: Checks for new releases over HTTPS. Downloads and installs signed packages verified against a bundled public key. Automatic checks can be turned off in Settings ▸ Updates.
3. PDF export with external resources: Triggered only when selecting "Export PDF (with external resources)" to fetch online HTTPS images. Default export (⌘⇧E) never uses the network.
4. Attachment localization: Triggered only when choosing "Download this attachment" or "Download all attachments" to save remote images into a local note.assets/ directory.

## Usage stats & events

TinyMD reports a small set of anonymous events to button.click. Each report is a single HTTPS GET that returns 204 No Content; nothing is stored locally and nothing is retried. The only identifier is a random UUID v4 device ID generated on first run, sent in the Referer subdomain, and never tied to your hardware, Apple ID, or identity. Like any network request, the server sees your public IP at the transport layer.

The switch in Settings ▸ Privacy takes effect immediately — in-flight requests are cancelled and no further events are sent. The device ID is kept locally so it stays stable if you re-enable stats later. No first-run dialog is shown.

| Event | Trigger | Payload |
| --- | --- | --- |
| app/main/launch | Application launch completed | None (once per launch) |
| documents/editor/open | Document successfully opened | None (count only) |
| documents/editor/export | Export completed | Format (pdf/webp/jpeg), layout (document / 390 px / 800 px) |
| themes/main/change | Theme switched | Target theme slug |

## Never collected

We never collect: Document text, titles, word counts, file paths, web links in notes, keystrokes, clipboard contents, or hardware serial numbers.

## Local data

- Settings: `~/Library/Application Support/app.tinymd.TinyMD/settings.json`
- Download cache: `~/Library/Caches/app.tinymd.TinyMD/` (capped at 512 MiB, clearable in Settings ▸ Privacy).
- Uninstall: Move TinyMD from /Applications to Trash and delete the two folders above.

## tinymd.app

tinymd.app is a static site. We do not use cookies. Our own first-party script (served from agili.app) counts page views and a few tagged clicks — no cookies, no fingerprinting, nothing stored in your browser. Your theme preference is stored locally in your browser's localStorage.

## Changes & contact

- Any updates to this policy will be posted here. Questions: [Contact](https://tinymd.app/privacy#contact)
