Legal notice pursuant to § 5 DDG (German Digital Services Act)
Email: [email protected]
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: February 2026 · Effective immediately
No tracking. No cookies. No analytics. No accounts. Your progress stays in your browser. The only data we process is what you type into the playground — and we don't store it.
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 | 7 days (server logs) | Art. 6(1)(f) GDPR |
| jq filter + JSON input | Execute your query server-side | Not stored (memory only) | Art. 6(1)(b) GDPR |
| Lesson progress, theme preference | Remember your place | Your device (localStorage) | Not applicable (client-only) |
learnjq.dev is hosted on dedicated infrastructure in Germany (Hetzner Online GmbH, Gunzenhausen). No data is transferred outside the EU/EEA. 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.
When you run a filter in the playground or a lesson, the JSON input and jq expression you typed are sent to our server via HTTPS, executed in a sandboxed process, and the result is returned. The input data is held in memory only for the duration of execution and is not logged, stored, or analyzed.
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.