Security at gottrix
gottrix.app processes files 100% locally in your browser: the conversion code has no access to any foreign server (enforced by the Content-Security-Policy), so an upload is technically impossible. Delivery runs over TLS 1.2/1.3 with HSTS (2 years), a complete set of security headers, and hosting at Hetzner in Germany. Every claim on this page is verifiable yourself.
Zero-upload architecture: security by omission
Typical online converters upload your file to a server, process it there and send the result back - every one of those steps is attack surface. gottrix removes the critical step entirely: the engines (for images, PDFs, audio, video and more) run as WebAssembly directly in your browser. What is never transmitted cannot be intercepted in transit, cannot leak from any server, and cannot be demanded from anyone.
This is enforced by architecture, not by policy, with two strictly separated zones: the code that touches your file bytes (engines and web workers) is locked to its own origin by the Content-Security-Policy and contains zero network calls - an automated test verifies that on every build. The page level, which never sees your files, may only reach a documented analytics allowlist.
- Engines and workers: 0 network primitives, no foreign origins - statically checked on every build.
- Page level: foreign requests only to the documented analytics allowlist, never file bytes.
- No upload fallback: if local processing fails, you get an honest error message - never a server detour.
- Offline proof: after your first visit the tools keep working in airplane mode - the strongest evidence that nothing is sent.
Data flow: from your device to the server
Every request to gottrix.app first passes through the Cloudflare Edge network, which terminates the TLS connection and speeds up delivery, before being forwarded to the origin server at Hetzner in Germany. Cloudflare and Hetzner only process technical connection data such as IP address, requested URL and timestamp - never file contents, since those never leave your device. The optional feedback form adds two further branches (Cloudflare Turnstile for bot defense, Resend for a single internal notification); the anonymous usage analytics runs, only with your consent, directly from your browser to Google Analytics 4. The full recipient table with all data categories and legal bases is further down this page.
Recipients of your (connection) data
The table below lists every external recipient that processes technical data while operating gottrix.app - generated from the same register as the privacy policy, so the two pages can never drift apart. Your file contents appear in no row, because they never reach any of these recipients.
| Recipient | Role | Seat | Data categories | Legal basis | Transfer mechanism | Retention |
|---|---|---|---|---|---|---|
| Hetzner Online GmbH | Origin-Hosting / Server-Zugriffslogs | Deutschland | Gekuerzte/maskierte IP-Adresse (im Caddy-Zugriffslog, GDPR-uebliche Truncation: IPv4 auf /24 = letztes Oktett genullt, IPv6 auf /48 = letzte 80 Bit genullt; Details siehe evidence); Zeitstempel; angefragte URL; User-Agent; HTTP-Statuscode; Feedback-Freitext + optionale Diagnosedaten (Browser/Plattform/Viewport/Client-Zeit) in der Feedback-DB, KEINE IP-Adresse und KEINE E-Mail-Adresse (laut Tabellenschema bewusst keine Spalte dafuer) | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse am sicheren, stabilen Betrieb; fuer Feedback: berechtigtes Interesse an Missbrauchsschutz/Bearbeitung, optionale Diagnosedaten Art. 6 Abs. 1 lit. a DSGVO) | keine Drittlanduebermittlung (Sitz Deutschland/EU) | 90 days |
| Cloudflare, Inc. | CDN / Reverse Proxy / Bot-Abwehr (inkl. Turnstile fuer das Feedback-Formular) | USA | IP-Adresse (jeder Request, da Cloudflare TLS terminiert - nicht auf das Feedback-Formular beschraenkt); angefragte URL; User-Agent; Zeitstempel; TLS-/Verbindungsmetadaten; NEL-Fehlerberichte (Netzwerkfehler-Metadaten des Browsers); Turnstile-Challenge-Antwort-Token + optional die Besucher-IP als remoteip-Parameter (nur beim Absenden des Feedback-Formulars) | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an sicherer, performanter Auslieferung und Missbrauchs-/Bot-Abwehr) | EU-Standardvertragsklauseln, ggf. EU-US Data Privacy Framework (konkrete Cloudflare-Vertragsgrundlage im Repository nicht dokumentiert - zu verifizieren, siehe offene Punkte) | not concretely determinable |
| Google Ireland Ltd. | Web-Analytics (Google Analytics 4, Consent Mode v2 Advanced) | Irland (moegliche Weiterverarbeitung/Uebermittlung an Google LLC, USA) | gekuerzte IP-Adresse; Seiten-URL; Ereignis-/Werkzeug-Kennung; Zeitstempel; Geraete-/Browser-Metadaten (User-Agent) | Art. 6 Abs. 1 lit. a DSGVO i.V.m. § 25 Abs. 1 TDDDG (Einwilligung); vor Einwilligung ausschliesslich anonyme Modellierungssignale ohne Cookie und ohne Personenbezug | EU-Standardvertragsklauseln, EU-US Data Privacy Framework | not concretely determinable |
| Resend, Inc. | Transaktionale E-Mail (genau eine interne Benachrichtigung pro Feedback-Eingang) | USA | Feedback-Freitext (im E-Mail-Body); optionale Werkzeug-Kennung, Seiten-Pfad, Sprache, Zeitstempel (im E-Mail-Body); optionale Diagnosedaten (Browser/Plattform/Viewport/Client-Zeit), NUR bei separater ausdruecklicher Einwilligung; KEINE Besucher-IP-Adresse, KEINE Besucher-E-Mail-Adresse (laut Code nicht Teil der API-Payload) | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an Bearbeitung des Anliegens); fuer optionale Diagnosedaten Art. 6 Abs. 1 lit. a DSGVO (gesonderte Einwilligung) | EU-Standardvertragsklauseln, soweit einschlaegig EU-US Data Privacy Framework | usually 180 days |
Retention periods at a glance
Every retention period known on gottrix.app, in one place, concrete rather than vague:
| Server access logs (Hetzner, origin) | 90 days |
|---|---|
| Feedback submissions (database) | usually 180 days |
| Google Analytics 4 (usage analytics) | not concretely determinable |
Google Analytics 4’s retention is configured in the Google Analytics property, not in gottrix.app’s source code - the concrete value cannot be verified from here. All legal bases are in the privacy policy.
Transport: TLS and HSTS
The website is delivered exclusively over HTTPS - TLS 1.2 and 1.3 with modern cipher suites and automatically managed certificates. HTTP Strict Transport Security (HSTS) is set with max-age=63072000 (2 years) including subdomains: the browser then enforces HTTPS by itself on every future visit. For perspective: your file contents never travel over this connection, because they never leave your device - transport encryption protects the delivery of the site itself.
HTTP security headers
Every server response carries a complete set of security headers. The values are configuration, not aspiration: an automated test aborts any deploy where one is missing or differs.
| Header and value | Effect |
|---|---|
| Strict-Transport-Security: max-age=63072000; includeSubDomains | Enforces HTTPS for 2 years, including all subdomains. |
| X-Frame-Options: DENY | No embedding of the site in foreign frames (clickjacking protection, doubly secured via frame-ancestors in the CSP). |
| X-Content-Type-Options: nosniff | Stops the browser from guessing content types and executing files as script. |
| Referrer-Policy: strict-origin-when-cross-origin | Passes at most the origin to foreign sites, never full URLs. |
| Permissions-Policy: geolocation=(), usb=(), camera=(self), microphone=(self), ... | Disables 12 device and sensor APIs (location, USB, the privacy-sandbox APIs Attribution-Reporting/Browsing-Topics/Interest-Cohort and more) the site does not need; only fullscreen, screen sharing, camera and microphone (for the respective recording tools) stay allowed for the own origin. |
| Cross-Origin-Opener-Policy: same-origin | Isolates the browsing window from foreign pages that opened it. |
| Cross-Origin-Resource-Policy: same-origin | Stops foreign sites from embedding or reading resources from this origin. |
The Content-Security-Policy in full
The CSP is the technical lock behind the zero-upload guarantee. It is generated from a single source file and rendered here live from exactly that source - all 17 directives, unabridged:
default-src 'self'script-src 'self' 'wasm-unsafe-eval' 'sha256-IVwTUmhRUWm+PlXmt9psO+ld19VPfQQW+7HvkcN0W1Y=' https://www.googletagmanager.com https://challenges.cloudflare.comstyle-src 'self' 'unsafe-inline'img-src 'self' data: blob: https://www.google-analytics.com https://*.google-analytics.com https://www.googletagmanager.commedia-src 'self' blob:font-src 'self'connect-src 'self' https://www.google-analytics.com https://*.google-analytics.com https://www.googletagmanager.comworker-src 'self' blob:frame-src 'self' blob: https://challenges.cloudflare.comchild-src 'self' blob:object-src 'none'base-uri 'none'form-action 'self'frame-ancestors 'none'upgrade-insecure-requestsreport-uri /api/csp-reportreport-to csp-endpoint
Google CSP Evaluator (checked on 2026-07-09): 0 findings of severity High. Besides the own origin, connect-src permits only the documented page-level analytics allowlist - metadata, never file contents.
The existing Content Security Policy (default-src 'self') also acts as a technical advertising lock: it does not allow the delivered code to connect to any foreign origin at all. Even an accidentally injected advertising or tracking script could not function as a result - the browser blocks any such connection based on the policy. This is not an announcement, but a property of the existing architecture that is verifiable in the source code.
A deliberate choice: Privacy Sandbox APIs stay blocked
The Permissions-Policy row above fully blocks browsing-topics=(), attribution-reporting=() and interest-cohort=() - that is not incidental configuration, it is a deliberate, permanent decision. These three APIs are part of Google's "Privacy Sandbox": replacement mechanisms for the classic tracking cookie that would let the browser itself build interest profiles or store ad-attribution data. Blocking them is not a technical footnote for gottrix, it is a differentiation feature, consistent with the null-upload architecture: where file contents never leave the browser in the first place, an in-browser interest profile has no place either.
Advertising networks
As of 2026-07-25: gottrix does not currently integrate any advertising networks. Should this change, it will be disclosed here and in the privacy policy before the change takes effect.
Independent verification
Three external reviews are firmly planned and will run against the live domain at public launch: SSL Labs (TLS configuration), Mozilla Observatory (HTTP security posture) and securityheaders.com (header completeness). Results are shown and linked only once the scans have actually run - gottrix never displays unverified seals or grades, and an automated test in every build enforces exactly that.