learnjq
Imprint Privacy

Imprint

Legal notice pursuant to § 5 DDG (German Digital Services Act)

Service provider

Address
Michael Iden
c/o IP-Management #7090
Ludwig-Erhard-Straße 18
20459 Hamburg, Germany

Contact

Email: learnjq@mailbox.org

Liability for content

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.

Liability for links

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.

Copyright

The source code of learnjq is published under the MIT License. The lesson content, design, and branding are © 2026 Michael Iden.

Dispute resolution

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.


Privacy Policy

Last updated: May 2026 · Effective immediately

TL;DR

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.

1. Controller

The controller within the meaning of Art. 4(7) GDPR is:

Data Controller
Michael Iden
c/o IP-Management #7090
Ludwig-Erhard-Straße 18
20459 Hamburg, Germany
learnjq@mailbox.org

2. What we process

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)

3. What we don't do

  • No cookies — not a single one
  • No analytics — no Google Analytics, no Plausible, no Matomo, nothing
  • No tracking scripts or pixels — no external fonts, analytics CDNs, or fingerprinting
  • One external script — the jq WebAssembly engine is loaded from unpkg.com (npm CDN) for jq execution; no data is sent to it
  • No ads — and never will be
  • No user accounts — nothing to sign up for
  • No data sharing — your data never leaves our server

4. Hosting

learnjq.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.

5. Local storage

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.

6. jq execution

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.

7. Your rights (GDPR)

You have the right to:

  • Access (Art. 15) — request what data we have about you
  • Rectification (Art. 16) — correct inaccurate data
  • Erasure (Art. 17) — request deletion of your data
  • Restriction (Art. 18) — limit how we process your data
  • Portability (Art. 20) — receive your data in a portable format
  • Objection (Art. 21) — object to processing based on legitimate interest

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.

8. Changes to this policy

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.

← Back to learnjq · GitHub · ☕ Support