Legal notice pursuant to § 5 DDG (German Digital Services Act)
Email: learnjq@mailbox.org
The content of this website has been created with care. However, I cannot guarantee the accuracy, completeness, or timeliness of the content. As a service provider, I am responsible for my own content on these pages under general law pursuant to § 7(1) DDG. Pursuant to §§ 8–10 DDG, I am not obligated to monitor transmitted or stored third-party information or to investigate circumstances indicating illegal activity.
This site contains links to external websites over which I have no control. I therefore cannot accept any liability for their content. The respective provider or operator is always responsible for the content of linked pages.
The source code of learnjq is published under the MIT License. The lesson content, design, and branding are © 2026 Michael Iden.
The European Commission provides a platform for online dispute resolution (OS): ec.europa.eu/consumers/odr. I am not willing or obliged to participate in dispute resolution proceedings before a consumer arbitration board.
Last updated: May 2026 · Effective immediately
No tracking. No cookies. No analytics. No accounts. Your progress stays in your browser. jq runs entirely in your browser via WebAssembly — your filters and JSON never leave your device.
The controller within the meaning of Art. 4(7) GDPR is:
| Data | Purpose | Storage | Legal basis |
|---|---|---|---|
| IP address, timestamp, URL, user-agent | Serve page, security, debugging | Short-term (Cloudflare edge logs) | Art. 6(1)(f) GDPR |
| jq filter + JSON input | Execute your query in-browser via WebAssembly | Never leaves your device | Not applicable (client-only) |
| Lesson progress, theme preference | Remember your place | Your device (localStorage) | Not applicable (client-only) |
unpkg.com (npm CDN) for jq execution; no data is sent to itlearnjq.dev is hosted on Cloudflare Workers (Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA). Static assets are served from Cloudflare's global edge network. Cloudflare may process standard request metadata (IP address, user-agent, URL) as part of serving the site and DDoS protection. See Cloudflare's Privacy Policy for details. TLS encryption is enforced for all connections.
Your browser's localStorage is used to save lesson progress and your theme preference. This data never leaves your device — it is not transmitted to our server. You can clear it anytime via your browser settings, DevTools, or the reset button on the site.
All jq execution happens entirely in your browser using WebAssembly (via the open-source jq-web library). When you run a filter in the playground, a lesson, or the visualizer, your JSON input and jq expression are processed locally — they are never sent to any server. The jq WASM binary itself is loaded once from unpkg.com on first visit; after that it may be cached by your browser.
You have the right to:
Since we don't collect personal data beyond temporary server logs, there is typically nothing to request. You also have the right to lodge a complaint with a supervisory authority, in particular in your member state of residence. For Germany: BfDI or your state's data protection authority.
If this policy changes, we'll update the date above. Since we don't have your email (or any other contact details), we can't notify you directly — but we'll keep a changelog in our GitHub repository.