From 72c98a56676586f2b53f6a42287e8ed393ed45c3 Mon Sep 17 00:00:00 2001 From: Bruno Bernardino Date: Wed, 4 Dec 2024 14:58:12 +0000 Subject: [PATCH] Update to new pricing More details in https://budgetzen.net/blog/new-updated-pricing-going-into-2025/ --- lib/utils.ts | 6 ++++-- pages/index.ts | 6 +++--- pages/pricing.ts | 8 ++++---- public/ts/billing.ts | 2 +- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/utils.ts b/lib/utils.ts index 7de8fab..e9b6763 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -16,11 +16,13 @@ export const defaultDescription = 'Simple and end-to-end encrypted budget and ex export const helpEmail = 'help@budgetzen.net'; export const PORT = Deno.env.get('PORT') || 8000; -export const STRIPE_MONTHLY_URL = 'https://buy.stripe.com/eVa01H57C3MB6CQ14s'; -export const STRIPE_YEARLY_URL = 'https://buy.stripe.com/28o5m1dE896V0es8wV'; +export const STRIPE_MONTHLY_URL = 'https://buy.stripe.com/7sI3dT8jO5UJ3qE00y'; +export const STRIPE_YEARLY_URL = 'https://buy.stripe.com/28og0F8jOgzn8KY00z'; export const STRIPE_CUSTOMER_URL = 'https://billing.stripe.com/p/login/4gw15w3G9bDyfWU6oo'; export const PAYPAL_CUSTOMER_URL = 'https://www.paypal.com'; export const IS_UNSAFE_SELF_HOSTED = Boolean(Deno.env.get('IS_UNSAFE_SELF_HOSTED') || ''); +export const MONTHLY_PRICE = 4; +export const YEARLY_PRICE = 40; export interface PageContentResult { htmlContent: string; diff --git a/pages/index.ts b/pages/index.ts index 9daf56b..001ae35 100644 --- a/pages/index.ts +++ b/pages/index.ts @@ -1,4 +1,4 @@ -import { helpEmail, html, PageContentResult } from '/lib/utils.ts'; +import { helpEmail, html, MONTHLY_PRICE, PageContentResult, YEARLY_PRICE } from '/lib/utils.ts'; import verificationCodeModal from '/components/modals/verification-code.ts'; export function pageAction() { @@ -22,8 +22,8 @@ export function pageContent() {

You have a 30-day free trial (no credit card - required), and at the end, you can pay €18 / year, - or €2 / month, no limits. + required), and at the end, you can pay €${YEARLY_PRICE} / year, + or €${MONTHLY_PRICE} / month, no limits.

diff --git a/pages/pricing.ts b/pages/pricing.ts index c6a2cb2..bc8d91f 100644 --- a/pages/pricing.ts +++ b/pages/pricing.ts @@ -1,4 +1,4 @@ -import { html, PageContentResult } from '/lib/utils.ts'; +import { html, MONTHLY_PRICE, PageContentResult, YEARLY_PRICE } from '/lib/utils.ts'; export function pageAction() { return new Response('Not Implemented', { status: 501 }); @@ -10,7 +10,7 @@ export function pageContent() {

Pricing

Pricing is simple.

-

You have a 30-day free trial (no credit card required), and at the end, you can pay €18 / year, or €2 / month, no limits.

+

You have a 30-day free trial (no credit card required), and at the end, you can pay €40 / year, or €4 / month, no limits.

Signup or Login first

@@ -34,11 +34,11 @@ export function pageContent() {

or
diff --git a/public/ts/billing.ts b/public/ts/billing.ts index d624d27..5cdd870 100644 --- a/public/ts/billing.ts +++ b/public/ts/billing.ts @@ -128,7 +128,7 @@ document.addEventListener('app-loaded', async () => { const clonedElement = (template.content.firstElementChild as HTMLDivElement).cloneNode(true) as HTMLDivElement; const paymentTextElement = clonedElement.querySelector('.subscription-value') as HTMLSpanElement; - paymentTextElement.textContent = isSubscriptionMonthly ? '€2 / month' : '€18 / year'; + paymentTextElement.textContent = isSubscriptionMonthly ? 'monthly' : 'yearly'; const notCanceledElement = clonedElement.querySelector('#subscription-is-not-canceled') as HTMLDivElement; const canceledElement = clonedElement.querySelector('#subscription-is-canceled') as HTMLDivElement;