Skip to content

Commit 79221fa

Browse files
committed
Merge branch 'develop'
2 parents 89102ed + 985c089 commit 79221fa

File tree

23 files changed

+233
-50
lines changed

23 files changed

+233
-50
lines changed

assets/css/custom.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ textarea:read-only {
200200
[id]::before {
201201
content: '';
202202
display: block;
203-
height: 96px;
204-
margin-top: -96px;
203+
height: 138px;
204+
margin-top: -138px;
205205
visibility: hidden;
206206
}

assets/js/androidkey.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,20 @@ class AndroidLicense {
4141
}).catch(() => {
4242
this._checkoutData.errorMessage = 'Retrieving price failed. Please try again later.';
4343
});
44-
// let discountedRequest = {
45-
// items: [{ priceId: PADDLE_ANDROID_PRICE_ID, quantity: 1}],
46-
// discountId: 'dsc_',
47-
// };
48-
// paddle.PricePreview(discountedRequest).then(discountedResult => {
49-
// if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
50-
// this._checkoutData.discountedPrice = {
51-
// amount: discountedResult.data.details.lineItems[0].totals.total,
52-
// formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
53-
// };
54-
// }
55-
// }).catch(error => {
56-
// this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
57-
// });
44+
let discountedRequest = {
45+
items: [{ priceId: PADDLE_ANDROID_PRICE_ID, quantity: 1}],
46+
discountId: PADDLE_DISCOUNT_ID
47+
};
48+
paddle.PricePreview(discountedRequest).then(discountedResult => {
49+
if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
50+
this._checkoutData.discountedPrice = {
51+
amount: discountedResult.data.details.lineItems[0].totals.total,
52+
formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
53+
};
54+
}
55+
}).catch(error => {
56+
this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
57+
});
5858
});
5959
}
6060

@@ -72,7 +72,8 @@ class AndroidLicense {
7272
paddle.Checkout.open({
7373
settings: { locale: locale },
7474
items: [{ priceId: PADDLE_ANDROID_PRICE_ID, quantity: 1 }],
75-
customer: { email: this._checkoutData.email }
75+
customer: { email: this._checkoutData.email },
76+
discountId: PADDLE_DISCOUNT_ID
7677
});
7778
});
7879
}

assets/js/const.template.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const PADDLE_ANDROID_PRICE_ID = '{{ .Site.Params.paddleAndroidPriceId }}';
99
const PADDLE_HUB_SELF_HOSTED_SUBSCRIPTION_PLAN_ID = {{ .Site.Params.paddleHubSelfHostedSubscriptionPlanId }};
1010
const PADDLE_HUB_MANAGED_SUBSCRIPTION_PLAN_ID = {{ .Site.Params.paddleHubManagedSubscriptionPlanId }};
1111
const PADDLE_PRICES_URL = '{{ .Site.Params.paddlePricesUrl }}';
12+
const PADDLE_DISCOUNT_ID = '{{ .Site.Params.paddleDiscountId }}';
1213
const LEGACY_STORE_URL = '{{ .Site.Params.legacyStoreUrl }}';
1314
const STRIPE_PK = '{{ .Site.Params.stripePk }}';
1415
const STRIPE_PLANS = {{ .Site.Params.stripePlans | jsonify }};

assets/js/desktopkey.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,20 @@ class DesktopLicense {
4444
}).catch(() => {
4545
this._checkoutData.errorMessage = 'Retrieving prices failed. Please try again later.';
4646
});
47-
// let discountedRequest = {
48-
// items: [{ priceId: PADDLE_DESKTOP_PRICE_IDS[0], quantity: 1 }],
49-
// discountId: 'dsc_',
50-
// };
51-
// paddle.PricePreview(discountedRequest).then(discountedResult => {
52-
// if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
53-
// this._checkoutData.discountedPrice = {
54-
// amount: discountedResult.data.details.lineItems[0].totals.total,
55-
// formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
56-
// };
57-
// }
58-
// }).catch(() => {
59-
// this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
60-
// });
47+
let discountedRequest = {
48+
items: [{ priceId: PADDLE_DESKTOP_PRICE_IDS[0], quantity: 1 }],
49+
discountId: PADDLE_DISCOUNT_ID
50+
};
51+
paddle.PricePreview(discountedRequest).then(discountedResult => {
52+
if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
53+
this._checkoutData.discountedPrice = {
54+
amount: discountedResult.data.details.lineItems[0].totals.total,
55+
formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
56+
};
57+
}
58+
}).catch(() => {
59+
this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
60+
});
6161
});
6262
}
6363

@@ -75,7 +75,8 @@ class DesktopLicense {
7575
paddle.Checkout.open({
7676
settings: { locale: locale },
7777
items: [{ priceId: priceId, quantity: Number.parseInt(this._checkoutData.quantity) }],
78-
customer: { email: this._checkoutData.email }
78+
customer: { email: this._checkoutData.email },
79+
discountId: PADDLE_DISCOUNT_ID
7980
});
8081
});
8182
}

config/development/params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ paddleVendorId: 1385
1717
paddleHubSelfHostedSubscriptionPlanId: 23141
1818
paddleHubManagedSubscriptionPlanId: 42235
1919
paddlePricesUrl: https://sandbox-checkout.paddle.com/api/2.0/prices
20+
paddleDiscountId: dsc_01kba2drz2yg4v6h3d5f2687tw
2021

2122
# STRIPE
2223
stripePk: pk_test_51RCM24IBZmkR4F9UiLBiSmsAnJvWqmHcDLxXR8ABKK1MNsZk3zCk2VJW7ZfaBlD81zpQxCX243sS3LEp9dABwiG800kJnGykDF

config/production/params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ paddleVendorId: 39223
1717
paddleHubSelfHostedSubscriptionPlanId: 770132
1818
paddleHubManagedSubscriptionPlanId: 807339
1919
paddlePricesUrl: https://checkout.paddle.com/api/2.0/prices
20+
paddleDiscountId: dsc_01kba2vjmspm92sx2jhq4s2082
2021

2122
# STRIPE
2223
stripePk: pk_live_eSasX216vGvC26GdbVwA011V

config/staging/params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ paddleVendorId: 1385
1717
paddleHubSelfHostedSubscriptionPlanId: 23141
1818
paddleHubManagedSubscriptionPlanId: 42235
1919
paddlePricesUrl: https://sandbox-checkout.paddle.com/api/2.0/prices
20+
paddleDiscountId: dsc_01kba2drz2yg4v6h3d5f2687tw
2021

2122
# STRIPE
2223
stripePk: pk_test_51RCM24IBZmkR4F9UiLBiSmsAnJvWqmHcDLxXR8ABKK1MNsZk3zCk2VJW7ZfaBlD81zpQxCX243sS3LEp9dABwiG800kJnGykDF
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: "Der Winter naht: 50 % Rabatt auf Cryptomator"
3+
slug: winter-sale
4+
date: 2025-12-01
5+
notice: "*Hinweis: Der Rabatt und der Preis können je nach Region variieren."
6+
tags: [cryptomator, sale]
7+
8+
summary: "Sichere dir im Dezember 50 % Rabatt auf Cryptomator, erfahre mehr über die kommende Preisänderung ab 2026 und profitiere weiterhin vom fairen Einmalkauf-Modell."
9+
10+
ogimage:
11+
relsrc: /img/blog/winter-2025-sale.png
12+
width: 1200
13+
height: 675
14+
---
15+
16+
Der Winter naht – und diesmal bringt er nicht nur Kälte, sondern auch Datensicherheit zum halben Preis! Vom **1. bis 31. Dezember 2025** läuft unser **Winter Sale**, bei dem du Cryptomator mit **50 %\* Rabatt** erhältst.
17+
18+
Das heißt: **Nur 9,99 € statt 19,99 €** – und das als dauerhafte Lizenz, kein Abo, keine monatlichen Kosten.
19+
20+
<figure class="text-center">
21+
<a href="/pricing/" target="_blank" rel="noopener">
22+
<img class="inline-block rounded-sm" src="/img/blog/winter-2025-sale.png" alt="Cryptomator Winter-Sale 50 % Rabatt" />
23+
</a>
24+
</figure>
25+
26+
## Einmal zahlen, dauerhaft geschützt
27+
28+
Bei Cryptomator sind wir davon überzeugt, dass Datenschutz **kein Abonnement** erfordern sollte.
29+
Während viele Apps heute auf monatliche oder jährliche Gebühren setzen, bleibt Cryptomator seinem **Einmalkauf-Modell** treu.
30+
31+
Einmal gekauft, kannst du Cryptomator dauerhaft nutzen, **ohne wiederkehrende Kosten oder versteckte Gebühren**. Deine Daten bleiben geschützt – ganz ohne Abo-Falle.
32+
33+
## Preisänderung ab 2026
34+
35+
Ab dem **1. Januar 2026** steigt der Preis von Cryptomator auf **29,99 €**.
36+
Damit investieren wir langfristig in **Sicherheitsstandards, Performance und neue Features**, die dich auch in Zukunft zuverlässig schützen.
37+
38+
Wenn du also schon länger mit dem Gedanken spielst, Cryptomator zu holen: **Jetzt ist der perfekte Zeitpunkt.** Sichere dir nicht nur 50 % Rabatt, sondern auch den **alten Preis**, bevor der Winter vorbei ist.
39+
40+
## Hol dir deinen Schutz, bevor das Jahr endet
41+
42+
***„Winter is coming“*** – aber deine Daten können vorbereitet sein. Nutze den Dezember, um deine digitalen Daten zu sichern und von unserem größten Rabatt des Jahres zu profitieren.
43+
44+
Nach dem 31. Dezember ist der Winter Sale vorbei – und der Preis steigt. **Jetzt kaufen und dauerhaft schützen**.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: "Winter Is Coming: 50% off Cryptomator"
3+
slug: winter-sale
4+
date: 2025-12-01
5+
notice: "*Note: Discount and pricing may vary by region."
6+
tags: [cryptomator, sale]
7+
8+
summary: "Get 50% off Cryptomator this December, learn more about the upcoming price change in 2026, and continue benefiting from our fair one-time purchase model."
9+
10+
ogimage:
11+
relsrc: /img/blog/winter-2025-sale.png
12+
width: 1200
13+
height: 675
14+
---
15+
16+
Winter is Coming — and this time it brings not only cold, but also data security at half the price! From December 1 to 31, 2025, our Winter Sale is live, giving you **50% off\*** Cryptomator.
17+
18+
That means: only **€9.99 instead of €19.99** — and as a **one-time purchase**, not a subscription, with no monthly fees.
19+
20+
<figure class="text-center">
21+
<a href="/pricing/" target="_blank" rel="noopener">
22+
<img class="inline-block rounded-sm" src="/img/blog/winter-2025-sale.png" alt="Cryptomator Winter Sale 50% Off" />
23+
</a>
24+
</figure>
25+
26+
## Pay Once, Stay Protected Forever
27+
28+
At Cryptomator, we strongly believe that privacy **shouldn’t require a subscription**.
29+
While many apps rely on monthly or yearly fees, Cryptomator stays true to its **one-time purchase** model.
30+
31+
Once purchased, you can use Cryptomator indefinitely — **with no recurring costs or hidden charges**. Your data stays protected, free from subscription traps.
32+
33+
## Price Change Coming in 2026
34+
35+
Starting **January 1, 2026**, the price of Cryptomator will increase to **€29.99**.
36+
This ensures long-term investment in **security standards, performance, and new features** that will continue to protect you reliably in the future.
37+
38+
So if you've been thinking about getting Cryptomator, **now is the perfect time**. Secure not only the 50% discount but also the **old price** before winter ends.
39+
40+
## Get Protected Before the Year Ends
41+
42+
***“Winter is Coming”*** — but your data can be prepared. Use December to secure your digital information and benefit from our biggest discount of the year.
43+
44+
After December 31, the Winter Sale ends — and the price goes up. **Buy now and stay protected for good.**

content/downloads/android.de.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ <h3 class="font-h3 text-lg">Google Play</h3>
2222
<a href="https://play.google.com/store/apps/details?id=org.cryptomator&hl=de" role="button" data-umami-event="downloads-android-googleplay">
2323
<img class="h-10 mx-auto lazyload" data-src="/de/img/downloads/googleplay-badge.png">
2424
</a>
25+
<p class="text-sm md:text-base leading-relaxed text-gray-700 rounded bg-primary-l2 p-2 mt-4">❄️ Der Einmalpreis ist um 50 %* reduziert!</p>
2526
</div>
2627
</div>
28+
<p class="prose prose-sm max-w-none">*Hinweis: Die Höhe des Rabatts kann je nach Region variieren.</p>
2729

2830
<div class="white-box my-4">
2931
<div class="px-4 py-2 border-b border-primary">

0 commit comments

Comments
 (0)