From 3215704c45de5b5f22fbb57f3aa46aed9996f871 Mon Sep 17 00:00:00 2001 From: Majid Achhoud Date: Fri, 31 Jul 2026 07:57:52 +0200 Subject: [PATCH] Add gated whitepaper section with overview, detail pages, and EspoCRM lead form --- content/whitepaper/_index.de.html | 5 + content/whitepaper/_index.en.html | 5 + ...gdpr-compliant-cloud-collaboration.de.html | 12 ++ ...gdpr-compliant-cloud-collaboration.en.html | 12 ++ .../zero-knowledge-cloud-encryption.de.html | 12 ++ .../zero-knowledge-cloud-encryption.en.html | 12 ++ data/nav.yaml | 1 + i18n/de.yaml | 28 +++- i18n/en.yaml | 28 +++- layouts/partials/whitepaper-cover.html | 18 +++ layouts/partials/whitepaper-grid.html | 35 +++++ layouts/webinar/single.html | 2 +- layouts/whitepaper/list.html | 21 +++ layouts/whitepaper/single.html | 129 ++++++++++++++++++ 14 files changed, 317 insertions(+), 3 deletions(-) create mode 100644 content/whitepaper/_index.de.html create mode 100644 content/whitepaper/_index.en.html create mode 100644 content/whitepaper/gdpr-compliant-cloud-collaboration.de.html create mode 100644 content/whitepaper/gdpr-compliant-cloud-collaboration.en.html create mode 100644 content/whitepaper/zero-knowledge-cloud-encryption.de.html create mode 100644 content/whitepaper/zero-knowledge-cloud-encryption.en.html create mode 100644 layouts/partials/whitepaper-cover.html create mode 100644 layouts/partials/whitepaper-grid.html create mode 100644 layouts/whitepaper/list.html create mode 100644 layouts/whitepaper/single.html diff --git a/content/whitepaper/_index.de.html b/content/whitepaper/_index.de.html new file mode 100644 index 000000000..b03c725f7 --- /dev/null +++ b/content/whitepaper/_index.de.html @@ -0,0 +1,5 @@ +--- +title: "Whitepaper" +type: "whitepaper" +description: "Ausführliche Whitepaper zu Zero-Knowledge-Verschlüsselung, DSGVO-konformer Zusammenarbeit und der Kontrolle über deine Daten in der Cloud." +--- diff --git a/content/whitepaper/_index.en.html b/content/whitepaper/_index.en.html new file mode 100644 index 000000000..157c21232 --- /dev/null +++ b/content/whitepaper/_index.en.html @@ -0,0 +1,5 @@ +--- +title: "Whitepapers" +type: "whitepaper" +description: "In-depth whitepapers on zero-knowledge encryption, GDPR-compliant collaboration, and how organizations keep control of their data in the cloud." +--- diff --git a/content/whitepaper/gdpr-compliant-cloud-collaboration.de.html b/content/whitepaper/gdpr-compliant-cloud-collaboration.de.html new file mode 100644 index 000000000..c9c2eb8c0 --- /dev/null +++ b/content/whitepaper/gdpr-compliant-cloud-collaboration.de.html @@ -0,0 +1,12 @@ +--- +title: "DSGVO-konforme Cloud-Zusammenarbeit" +type: "whitepaper" +description: "Ein praktischer Leitfaden für die Zusammenarbeit in der Cloud unter Einhaltung der DSGVO: Verschlüsselung, Zugriffskontrolle und Nachvollziehbarkeit." +cardtitle: "DSGVO-konforme Cloud-Zusammenarbeit" +cardtext: "Wie Organisationen sensible Dateien in der Cloud teilen, ohne Datenschutzrecht zu verletzen: von rechtlichen Grundlagen bis zu technischen Maßnahmen." +comingsoon: false +weight: 20 +espoId: "" # ID of the CWhitepaper record in EspoCRM + +abstract: "Dieses Whitepaper zeigt, welche DSGVO-Pflichten gelten, wenn Teams in der Cloud mit personenbezogenen Daten arbeiten, und wie Ende-zu-Ende-Verschlüsselung und granulare Zugriffskontrolle Compliance-Anforderungen in gelebte Praxis übersetzen." +--- diff --git a/content/whitepaper/gdpr-compliant-cloud-collaboration.en.html b/content/whitepaper/gdpr-compliant-cloud-collaboration.en.html new file mode 100644 index 000000000..e34293051 --- /dev/null +++ b/content/whitepaper/gdpr-compliant-cloud-collaboration.en.html @@ -0,0 +1,12 @@ +--- +title: "GDPR-Compliant Cloud Collaboration" +type: "whitepaper" +description: "A practical guide to collaborating in the cloud while meeting GDPR requirements: encryption, access control, and audit trails." +cardtitle: "GDPR-Compliant Cloud Collaboration" +cardtext: "How organizations share sensitive files in the cloud without violating data protection law, from legal basics to technical safeguards." +comingsoon: false +weight: 20 +espoId: "" # ID of the CWhitepaper record in EspoCRM + +abstract: "This whitepaper walks through the GDPR obligations that apply when teams collaborate on personal data in the cloud, and shows how end-to-end encryption and granular access control turn compliance requirements into everyday practice." +--- diff --git a/content/whitepaper/zero-knowledge-cloud-encryption.de.html b/content/whitepaper/zero-knowledge-cloud-encryption.de.html new file mode 100644 index 000000000..07ba86324 --- /dev/null +++ b/content/whitepaper/zero-knowledge-cloud-encryption.de.html @@ -0,0 +1,12 @@ +--- +title: "Zero-Knowledge-Verschlüsselung in der Cloud" +type: "whitepaper" +description: "Erfahre, wie Zero-Knowledge-Ende-zu-Ende-Verschlüsselung die Cloud-Daten deiner Organisation schützt, selbst vor deinem Cloud-Anbieter." +cardtitle: "Zero-Knowledge-Verschlüsselung in der Cloud" +cardtext: "Warum clientseitige Verschlüsselung der einzige Weg ist, die Kontrolle über deine Daten in der Cloud zu behalten: Architektur, Bedrohungsmodell und praktische Einführung." +comingsoon: false +weight: 10 +espoId: "" # ID of the CWhitepaper record in EspoCRM + +abstract: "Dieses Whitepaper erklärt die Architektur hinter Zero-Knowledge-Verschlüsselung, vergleicht sie mit serverseitigen Alternativen und zeigt, wie Organisationen sie einführen, ohne bestehende Arbeitsabläufe zu stören." +--- diff --git a/content/whitepaper/zero-knowledge-cloud-encryption.en.html b/content/whitepaper/zero-knowledge-cloud-encryption.en.html new file mode 100644 index 000000000..6d0a986d3 --- /dev/null +++ b/content/whitepaper/zero-knowledge-cloud-encryption.en.html @@ -0,0 +1,12 @@ +--- +title: "Zero-Knowledge Encryption in the Cloud" +type: "whitepaper" +description: "Learn how zero-knowledge, end-to-end encryption protects your organization's cloud data, even from your cloud provider." +cardtitle: "Zero-Knowledge Encryption in the Cloud" +cardtext: "Why client-side encryption is the only way to keep control of your data in the cloud: architecture, threat model, and practical rollout." +comingsoon: false +weight: 10 +espoId: "" # ID of the CWhitepaper record in EspoCRM + +abstract: "This whitepaper explains the architecture behind zero-knowledge encryption, compares it to server-side alternatives, and shows how organizations roll it out without disrupting existing workflows." +--- diff --git a/data/nav.yaml b/data/nav.yaml index 63de1591d..1a4fba388 100644 --- a/data/nav.yaml +++ b/data/nav.yaml @@ -20,6 +20,7 @@ - Path: "/guides" - Path: "/comparisons" - Path: "/compliance" + - Path: "/whitepaper" - Separator: true - Path: "/success-stories" - Path: "/coop" diff --git a/i18n/de.yaml b/i18n/de.yaml index 95a5728ce..b67707675 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -1416,7 +1416,7 @@ translation: "Du bist angemeldet!" - id: webinar_success_message translation: "Vielen Dank für deine Anmeldung. Du erhältst in Kürze eine Bestätigungs-E-Mail mit den Webinar-Details." -- id: webinar_success_inbox_hint +- id: success_inbox_hint translation: "Bitte prüfe auch deinen Spam-Ordner." - id: webinar_details_title translation: "Webinar-Details" @@ -1441,6 +1441,32 @@ - id: webinar_none_newsletter_instruction translation: "Abonniere unseren Hub-Newsletter und wir informieren dich, sobald das nächste Webinar feststeht." +# Whitepaper +- id: whitepaper_eyebrow + translation: "Whitepaper" +- id: whitepaper_first_name + translation: "Vorname" +- id: whitepaper_last_name + translation: "Nachname" +- id: whitepaper_email + translation: "E-Mail-Adresse" +- id: whitepaper_company + translation: "Unternehmen / Organisation" +- id: whitepaper_submit + translation: "Download" +- id: whitepaper_success_title + translation: "Vielen Dank!" +- id: whitepaper_success_message + translation: "Wir haben dir den Download-Link per E-Mail geschickt." +- id: whitepaper_contact_title + translation: "Fragen zu unseren Whitepapern?" +- id: whitepaper_contact_description + translation: "Du möchtest tiefer in ein Thema einsteigen oder besprechen, was es für deine Organisation bedeutet? Unser Team hilft gerne weiter." +- id: whitepaper_contact_button + translation: "Kontakt aufnehmen" +- id: whitepaper_more + translation: "Weitere Whitepaper" + # Sale - id: nav_promotion translation: ":sunny: Summer Sale: 50 %* Rabatt auf Cryptomator – Bis zum 07. Juli! Mehr erfahren " diff --git a/i18n/en.yaml b/i18n/en.yaml index 6cadc450e..b38d60786 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -1449,7 +1449,7 @@ translation: "You're registered!" - id: webinar_success_message translation: "Thank you for registering. You will receive a confirmation email with the webinar details shortly." -- id: webinar_success_inbox_hint +- id: success_inbox_hint translation: "Please also check your spam folder." - id: webinar_details_title translation: "Webinar Details" @@ -1474,6 +1474,32 @@ - id: webinar_none_newsletter_instruction translation: "Subscribe to our Hub mailing list and we'll let you know as soon as the next webinar is scheduled." +# Whitepaper +- id: whitepaper_eyebrow + translation: "Whitepaper" +- id: whitepaper_first_name + translation: "First Name" +- id: whitepaper_last_name + translation: "Last Name" +- id: whitepaper_email + translation: "Email Address" +- id: whitepaper_company + translation: "Company / Organization" +- id: whitepaper_submit + translation: "Download" +- id: whitepaper_success_title + translation: "Thank You!" +- id: whitepaper_success_message + translation: "We've sent the download link to your email address." +- id: whitepaper_contact_title + translation: "Questions About Our Whitepapers?" +- id: whitepaper_contact_description + translation: "Want to dive deeper into a topic or discuss how it applies to your organization? Our team is happy to help." +- id: whitepaper_contact_button + translation: "Contact Us" +- id: whitepaper_more + translation: "More Whitepapers" + # Sale - id: nav_promotion translation: ":sunny: Summer Sale: 50%* Off Cryptomator – Until July 7! Learn More " diff --git a/layouts/partials/whitepaper-cover.html b/layouts/partials/whitepaper-cover.html new file mode 100644 index 000000000..462bb034b --- /dev/null +++ b/layouts/partials/whitepaper-cover.html @@ -0,0 +1,18 @@ +{{/* Proportional cover: all sizes derive from the container width (cqw), so + small teaser covers render as exact scale-downs of the large hero cover. */}} +
+
+
+
+
+
+ + CRYPTOMATOR +
+

+ {{ i18n "whitepaper_eyebrow" }} +

+

{{ .page.Title }}

+

cryptomator.org

+
+
diff --git a/layouts/partials/whitepaper-grid.html b/layouts/partials/whitepaper-grid.html new file mode 100644 index 000000000..ef9184013 --- /dev/null +++ b/layouts/partials/whitepaper-grid.html @@ -0,0 +1,35 @@ +
+
+ {{ range .page.Pages.ByWeight }} + + {{ end }} +
+
diff --git a/layouts/webinar/single.html b/layouts/webinar/single.html index 82753b7c6..dc39f1cd4 100644 --- a/layouts/webinar/single.html +++ b/layouts/webinar/single.html @@ -159,7 +159,7 @@

- {{ i18n "webinar_success_inbox_hint" }} + {{ i18n "success_inbox_hint" }}

diff --git a/layouts/whitepaper/list.html b/layouts/whitepaper/list.html new file mode 100644 index 000000000..440e3bc24 --- /dev/null +++ b/layouts/whitepaper/list.html @@ -0,0 +1,21 @@ +{{ define "main" }} +
+
+

{{ .Title }}

+

{{ .Description }}

+
+ + {{ partial "whitepaper-grid.html" (dict "page" .) }} + +
+

{{ i18n "whitepaper_contact_title" }}

+

+ {{ i18n "whitepaper_contact_description" }} +

+ + + {{ i18n "whitepaper_contact_button" }} + +
+
+{{ end }} diff --git a/layouts/whitepaper/single.html b/layouts/whitepaper/single.html new file mode 100644 index 000000000..1a3f50c3e --- /dev/null +++ b/layouts/whitepaper/single.html @@ -0,0 +1,129 @@ +{{ define "preloads" }} + {{ if not .Params.comingsoon }} + {{ partial "altcha-css.html" . }} + {{ end }} +{{ end }} +{{ define "main" }} +
+
+
+
+
+ {{ i18n "whitepaper_eyebrow" }} +
+

{{ .Title }}

+ +

{{ .Params.abstract }}

+ + {{ if not .Params.comingsoon }} +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +

+ {{ partial "checkbox.html" (dict "context" . "alpineVariable" "acceptTerms" "label" (i18n "accept_privacy" | safeHTML)) }} +

+

+ {{ partial "checkbox.html" (dict "context" . "alpineVariable" "submitData.acceptNewsletter" "label" (i18n "accept_hub_newsletter_optional")) }} +

+ +

+ + {{ $challengeUrl := printf "%s/connect/contact/challenge" .Site.Params.apiBaseUrl }} + {{ partial "captcha.html" (dict "challengeUrl" $challengeUrl "captchaPayload" "submitData.captcha" "captchaState" "captchaState") }} +
+ +
+
+ +

+ {{ i18n "whitepaper_success_title" }} +

+

+ {{ i18n "whitepaper_success_message" }} +

+

+ + {{ i18n "success_inbox_hint" }} +

+
+
+
+ {{ end }} +
+ +
+ {{ if .Params.cover }} + {{ .Params.cardtitle }} + {{ else }} + {{ partial "whitepaper-cover.html" (dict "page" .) }} + {{ end }} +
+
+
+ + {{ $others := where (where .CurrentSection.RegularPages "Permalink" "ne" .Permalink) "Params.comingsoon" "ne" true }} + {{ with $others }} +
+

+ {{ i18n "whitepaper_more" }} +

+ +
+ {{ end }} +
+{{ end }} +{{ define "script" }} + {{ if .Params.comingsoon }} + {{ else if hugo.IsDevelopment }} + {{ $apiFormJs := resources.Get "js/apiform.js" }} + + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} + + {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} + + {{ else }} + {{ $apiFormJs := resources.Get "js/apiform.js" | minify | fingerprint }} + + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} + + {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} + + {{ end }} +{{ end }}