Skip to content

new prices#65

Merged
jamalsoueidan merged 4 commits intomainfrom
new_prices
Mar 13, 2026
Merged

new prices#65
jamalsoueidan merged 4 commits intomainfrom
new_prices

Conversation

@jamalsoueidan
Copy link
Owner

No description provided.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Premium page pricing and introduces a new quarterly (3‑month) Stripe-only subscription option, with localized messaging updates across supported locales.

Changes:

  • Added a new quarterly billing period + 3‑month plan copy in all existing locale premium.json files.
  • Added a new Stripe price env var mapping (STRIPE_PRICE_QUARTERLY) for checkout session creation.
  • Updated Premium UI billing options (new plan, new prices) and extended Stripe payment button billing-cycle typing to include quarterly.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
frontend/src/messages/tr/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/pt/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/ko/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/ja/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/id/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/es/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/en/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/messages/ar/protected/premium.json Adds quarterly/3‑month strings; updates annual savings copy.
frontend/src/app/api/stripe/checkout/route.ts Adds quarterly price ID mapping for Stripe checkout.
frontend/src/app/[locale]/(protected)/premium/premium-client.tsx Adds Stripe-only quarterly plan, filters plans by payment method, updates prices, adds quarterly label translation.
frontend/src/app/[locale]/(protected)/premium/components/stripe-payment-button.tsx Extends billingCycle union to include quarterly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +128 to +132
const filteredBillingOptions =
selectedPayment === "stripe"
? BILLING_OPTIONS
: BILLING_OPTIONS.filter((o) => !o.stripeOnly);

Comment on lines +68 to +74
const handlePaymentChange = (value: string | null) => {
setSelectedPayment(value);
// Reset to 12months if switching away from stripe while 3months is selected
if (value !== "stripe" && selectedBilling === "3months") {
setSelectedBilling("12months");
}
};
Comment on lines +101 to 105
savings: t("billing3MonthsSavings"),
badge: null,
billingCycle: "quarterly" as const,
stripeOnly: true,
},
Comment on lines +98 to +102
label: t("billing3MonthsLabel"),
price: 36,
perMonth: 12,
savings: t("billing3MonthsSavings"),
badge: null,
Comment on lines 109 to 113
price: 120,
perMonth: 10,
savings: t("billing12MonthsSavings"),
badge: t("billing12MonthsBadge"),
billingCycle: "annual" as const,
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new quarterly (3-month) Premium plan (Stripe-only) and updates displayed pricing/savings messaging across supported locales.

Changes:

  • Introduces a Stripe-only 3-month / quarterly billing option in the Premium UI (with filtering when Freemius is selected).
  • Extends the Stripe checkout API to accept a quarterly billing cycle via STRIPE_PRICE_QUARTERLY.
  • Updates Premium pricing/savings copy in all supported translation files.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
frontend/src/messages/tr/protected/premium.json Adds quarterly strings + updates annual savings text (TR).
frontend/src/messages/pt/protected/premium.json Adds quarterly strings + updates annual savings text (PT).
frontend/src/messages/ko/protected/premium.json Adds quarterly strings + updates annual savings text (KO).
frontend/src/messages/ja/protected/premium.json Adds quarterly strings + updates annual savings text (JA).
frontend/src/messages/id/protected/premium.json Adds quarterly strings + updates annual savings text (ID).
frontend/src/messages/es/protected/premium.json Adds quarterly strings + updates annual savings text (ES).
frontend/src/messages/en/protected/premium.json Adds quarterly strings + updates annual savings text (EN).
frontend/src/messages/ar/protected/premium.json Adds quarterly strings + updates annual savings text (AR).
frontend/src/app/api/stripe/checkout/route.ts Adds quarterlySTRIPE_PRICE_QUARTERLY mapping for Stripe Checkout session creation.
frontend/src/app/[locale]/(protected)/premium/premium-client.tsx Adds quarterly plan, Stripe-only filtering, and translated billing period support.
frontend/src/app/[locale]/(protected)/premium/components/stripe-payment-button.tsx Extends Stripe billingCycle prop union to include quarterly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

const selectedPlan = filteredBillingOptions.find(
(o) => o.id === selectedBilling,
);

@jamalsoueidan jamalsoueidan requested a review from Copilot March 13, 2026 15:15
@jamalsoueidan jamalsoueidan merged commit 60336be into main Mar 13, 2026
3 checks passed
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new quarterly billing option and updates premium pricing/messaging across the UI and Stripe checkout flow.

Changes:

  • Introduce quarterly plan copy in all supported locales and update annual savings wording.
  • Update Premium page plan options/prices and restrict the quarterly plan to Stripe.
  • Extend Stripe checkout API to accept a quarterly billing cycle via STRIPE_PRICE_QUARTERLY.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
frontend/src/messages/tr/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (TR).
frontend/src/messages/pt/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (PT).
frontend/src/messages/ko/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (KO).
frontend/src/messages/ja/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (JA).
frontend/src/messages/id/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (ID).
frontend/src/messages/es/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (ES).
frontend/src/messages/en/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (EN).
frontend/src/messages/ar/protected/premium.json Add quarterly labels/savings; adjust annual savings copy (AR).
frontend/src/app/api/stripe/checkout/route.ts Add Stripe price ID env var mapping for quarterly.
frontend/src/app/[locale]/(protected)/premium/premium-client.tsx Update plan list/prices; add Stripe-only filtering and payment method UX changes.
frontend/src/app/[locale]/(protected)/premium/components/stripe-payment-button.tsx Widen Stripe billingCycle prop type to include quarterly.
frontend/src/app/[locale]/(protected)/premium/components/freemius-payment-button.tsx Widen Freemius billingCycle prop type to include quarterly (causes issues).
Comments suppressed due to low confidence (1)

frontend/src/app/[locale]/(protected)/premium/premium-client.tsx:116

  • The lifetime plan option is now left in BILLING_OPTIONS as a commented-out block. This kind of dead code tends to drift and is easy to forget; if lifetime is intentionally disabled, it would be clearer to remove it entirely or gate it behind an explicit feature flag/config so it’s obvious when/why it’s off.
    /*{
      id: "lifetime",
      label: t("billingLifetimeLabel"),
      price: 199,
      perMonth: null,

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +105 to +106
price: 96,
perMonth: 8,

interface FreemiusPaymentButtonProps extends Omit<ButtonProps, "onClick"> {
billingCycle: "monthly" | "annual" | "lifetime";
billingCycle: "monthly" | "quarterly" | "annual" | "lifetime";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants