diff --git a/apps/api/src/utils/plans.ts b/apps/api/src/utils/plans.ts index 8f71835..1a90bde 100644 --- a/apps/api/src/utils/plans.ts +++ b/apps/api/src/utils/plans.ts @@ -6,15 +6,12 @@ export interface PlanLimits { maxRegions: number; } -// Base pro limits — multiplied for 2x/4x tiers -const PRO_BASE = { maxMonitors: 200, minIntervalS: 2, maxRegions: 99 }; - const PLANS: Record = { - free: { maxMonitors: 10, minIntervalS: 30, maxRegions: 1 }, - pro: { ...PRO_BASE }, - pro2x: { ...PRO_BASE, maxMonitors: PRO_BASE.maxMonitors * 2 }, - pro4x: { ...PRO_BASE, maxMonitors: PRO_BASE.maxMonitors * 4 }, - lifetime: { ...PRO_BASE }, + free: { maxMonitors: 10, minIntervalS: 30, maxRegions: 1 }, + pro: { maxMonitors: 200, minIntervalS: 5, maxRegions: 99 }, + pro2x: { maxMonitors: 400, minIntervalS: 2, maxRegions: 99 }, + pro4x: { maxMonitors: 800, minIntervalS: 1, maxRegions: 99 }, + lifetime: { maxMonitors: 200, minIntervalS: 5, maxRegions: 99 }, }; export function getPlanLimits(plan: string): PlanLimits { @@ -27,9 +24,9 @@ export const PLAN_LABELS: Record = { }; export const PRO_MULTIPLIERS = [ - { plan: "pro", label: "1x", monitors: PRO_BASE.maxMonitors, priceMultiplier: 1 }, - { plan: "pro2x", label: "2x", monitors: PRO_BASE.maxMonitors * 2, priceMultiplier: 2 }, - { plan: "pro4x", label: "4x", monitors: PRO_BASE.maxMonitors * 4, priceMultiplier: 4 }, + { plan: "pro", label: "1x", monitors: 200, interval: "5s", priceMultiplier: 1 }, + { plan: "pro2x", label: "2x", monitors: 400, interval: "2s", priceMultiplier: 2 }, + { plan: "pro4x", label: "4x", monitors: 800, interval: "1s", priceMultiplier: 4 }, ]; export const PRO_MONTHLY_USD = 12; diff --git a/apps/web/src/views/checkout.ejs b/apps/web/src/views/checkout.ejs index ae5417b..c80e65a 100644 --- a/apps/web/src/views/checkout.ejs +++ b/apps/web/src/views/checkout.ejs @@ -41,7 +41,7 @@ class="cursor-pointer text-left bg-surface border-2 border-border-subtle hover:border-blue-500/40 rounded-xl p-5 transition-colors">
Pro
From $12/mo
-
200–800 monitors, 2s intervals
+
200–800 monitors, 5s–1s intervals