Privacy Policy
Short version. JeffJS, JeffJSConsole, the JeffJS Watch App, and the JeffJS Watch Widget do not collect, transmit, sell, or share personal information. There are no accounts, no analytics SDKs, no advertising identifiers, and no tracking. Everything you type stays on your device unless your own JavaScript code makes a network request.
1. Who this policy covers
This policy applies to software published by Jeff Bachand ("we", "us"), including:
- JeffJS — the open-source Swift package (a developer library; not a consumer product).
- JeffJSConsole — the iOS, iPadOS, macOS, and visionOS REPL app.
- JeffJS Watch App — the watchOS REPL.
- JeffJS Watch Widget — the watchOS WidgetKit extension.
- jeffjs.com and any subdomains we operate.
We refer to the apps collectively as the "Apps" and the website as the "Site."
2. Data we collect
From the Apps: none. We do not collect, store, or transmit any personal information from the Apps to servers we operate. The Apps do not contain analytics SDKs, crash-reporting SDKs, advertising SDKs, attribution SDKs, or any third-party tracking code.
From the Site: none. jeffjs.com is a static website. It does not set tracking cookies, does not run analytics, and does not embed third-party trackers.
3. Data the Apps store on your device
The Apps store a small amount of data locally so the REPL is useful between launches. None of this leaves your device unless Apple's iCloud / device-backup services are enabled by you at the OS level.
| What | Where | Why |
|---|---|---|
| Command history | UserDefaults on the device | So you can press up-arrow to recall previous JS expressions. |
| Persisted JS globals (variables, imports) | App caches directory on the device | So your session survives an app restart. |
| Watch / widget shared snippet | App Group container shared between the watch app and its widget on the same device | So the widget can refresh using the snippet you set in the watch app. |
| UI preferences (e.g. demo variant) | UserDefaults | So the UI remembers what you picked. |
You can clear all of this at any time by deleting the app, or by using your device's standard "clear app data" controls where available.
4. Network activity
The Apps make network requests only in two situations, both initiated by you:
- JavaScript you run. The JeffJS interpreter exposes
fetch,WebSocket, and dynamicimport()to JS code you write or paste in. If your code callsfetch('https://example.com'), the device contactsexample.comdirectly. We do not intermediate or log these requests. - Bundled sample snippets. The Apps include a few sample JS snippets that demonstrate
fetchagainst well-known public test endpoints (for examplehttps://httpbin.org/json). These run only if you tap or paste them. You can edit or remove them.
Any third-party server you reach this way has its own privacy policy, which we do not control. The Apps do not append identifiers, tokens, or device information to your requests beyond what the operating system normally includes (e.g. a default user-agent).
5. Permissions the Apps request
The Apps do not request access to your contacts, calendar, photos, microphone, camera, location, health data, motion data, Bluetooth, or local network. The Apps do not use Apple's Advertising Identifier (IDFA) and do not present an App Tracking Transparency prompt because they do not track.
6. Children
The Apps are developer tools. They are not directed to children under 13, and we do not knowingly collect any information from children.
7. Third-party services
We do not embed third-party SDKs in the Apps. Apple may collect aggregate, non-personal information about app usage (downloads, crashes, App Store engagement) under Apple's own privacy policy when you use the App Store or have analytics sharing enabled in iOS / macOS Settings. That collection is governed by Apple's Privacy Policy, not by us.
8. Data sharing and sale
We do not sell, rent, trade, or share personal information. We have nothing to share — see Section 2.
9. Security
Because the Apps do not transmit personal data to our servers, there is no server-side store for an attacker to breach. On-device data is protected by the standard iOS / iPadOS / macOS / watchOS / visionOS sandbox and file-protection mechanisms.
10. Your rights (GDPR, UK GDPR, CCPA / CPRA)
If you are a resident of the European Economic Area, the United Kingdom, California, or another jurisdiction with similar laws, you have rights including access, correction, deletion, portability, and the right to object to processing. Because we do not collect personal information, we generally have no data to access, correct, port, or delete. If you believe we hold information about you, contact us at the address below and we will respond within the timeframe required by applicable law.
We do not "sell" or "share" personal information as those terms are defined under the California Consumer Privacy Act / California Privacy Rights Act.
11. International users
The Apps run entirely on your device, so your use of the Apps does not, by itself, transfer personal information across borders. The Site is hosted on infrastructure that may serve content from data centers worldwide; only standard request metadata (your IP address and user-agent, used solely to deliver the page) is processed by the host.
12. Changes to this policy
If we materially change this policy, we will update the "Last updated" date at the top and, where appropriate, surface a notice in the Apps or on the Site. Continued use after a change constitutes acceptance of the revised policy.
13. Contact
Questions or requests about this policy:
- Email: [email protected]
- Developer: Jeff Bachand