Conversation
- Introduced a new Partners page with program details and a call-to-action for potential partners. - Implemented a PartnerForm component for user inquiries, including validation and submission handling. - Added pricing feature data structure and a PricingFeatureTable component to display pricing options and features. - Updated UI components for better integration with the new features.
- Changed "Starting @" to "Starting at $" for improved clarity in the Pricing component.
| acc[row.category].push(row); | ||
| return acc; | ||
| }, | ||
| {} as Record<string, typeof pricingFeatures>, |
There was a problem hiding this comment.
the type Record<string, typeof pricingFeatures> is incorrect - should be Record<string, FeatureRow[]> since typeof pricingFeatures represents the entire array type, not an array of FeatureRow
| {} as Record<string, typeof pricingFeatures>, | |
| {} as Record<string, FeatureRow[]>, |
| { category: "Security", feature: "UFW Firewall Guidance", hobby: true, startup: true, enterprise: true }, | ||
| // User and Organization Management | ||
| { category: "User and Organization Management", feature: "User Management", hobby: "1 user", startup: "Unlimited", enterprise: "Unlimited" }, | ||
| { category: "User and Organization Management", feature: "Organizations", hobby: "1 Organizations", startup: "3 Organizations", enterprise: "10+ Organizations" }, |
There was a problem hiding this comment.
"1 Organizations" should be "1 Organization" (singular)
| { category: "User and Organization Management", feature: "Organizations", hobby: "1 Organizations", startup: "3 Organizations", enterprise: "10+ Organizations" }, | |
| { category: "User and Organization Management", feature: "Organizations", hobby: "1 Organization", startup: "3 Organizations", enterprise: "10+ Organizations" }, |
apps/website/components/pricing.tsx
Outdated
| const [openPartnerModal, setOpenPartnerModal] = useState(false); | ||
|
|
||
| const hobbyMonthlyPrice = 4.5; | ||
| const hobbyAnnualPrice = hobbyMonthlyPrice * 12 * 0.8; // 20% discount |
There was a problem hiding this comment.
hobbyAnnualPrice calculation is incorrect - it computes the total annual cost ($43.20) but displays it as "/mo" on line 174. Should be hobbyMonthlyPrice * 0.8 (which equals $3.60/mo) to show the discounted monthly rate
| const hobbyAnnualPrice = hobbyMonthlyPrice * 12 * 0.8; // 20% discount | |
| const hobbyAnnualPrice = hobbyMonthlyPrice * 0.8; // 20% discount on monthly rate |
| const hobbyMonthlyPrice = 4.5; | ||
| const hobbyAnnualPrice = hobbyMonthlyPrice * 12 * 0.8; // 20% discount | ||
| const startupBaseMonthly = 15; | ||
| const startupBaseAnnual = startupBaseMonthly * 12 * 0.8; |
There was a problem hiding this comment.
startupBaseAnnual calculation is incorrect - same issue as hobbyAnnualPrice. It computes total annual cost ($144) but displays as "/mo" on line 228. Should be startupBaseMonthly * 0.8 (which equals $12/mo) for the discounted monthly rate
| const startupBaseAnnual = startupBaseMonthly * 12 * 0.8; | |
| const startupBaseAnnual = startupBaseMonthly * 0.8; |
- Eliminated the hosting type selection (cloud vs self-hosted) from the Pricing component to streamline the user experience. - Adjusted the layout to maintain visual consistency and ensure clarity in pricing presentation.
- Renamed variables for clarity, changing hobbyAnnualPrice to hobbyAnnualTotal and introduced hobbyAnnualPerMonth for monthly display. - Adjusted the pricing display to show annual totals and monthly equivalents more clearly, enhancing user understanding of pricing options.
- Added new sections for Cloud and Self Hosted pricing options to provide users with clearer choices. - Included descriptions for each option to improve understanding of hosting solutions. - Adjusted layout to accommodate the new pricing display while maintaining visual consistency.
- Added logic to unwrap nested OpenAPI specifications from migrated APIs, improving compatibility with various API structures. - Updated the condition for writing the fixed schema to include unwrapped status, ensuring all necessary changes are saved.
Greptile Summary
This PR refactors the pricing page to introduce a cleaner, more organized pricing structure with three tiers (Hobby, Startup, Enterprise) and an Agency plan option. The changes include creating a comprehensive feature comparison table, adding a new partners page with partner programs, and preserving the old pricing component as
pricing-legacy.tsx.Key changes:
PricingFeatureTablecomponent to display feature comparison across planspricing-data.tswith 100 features organized into 11 categories/partnerspage with Agency Plan, Referral Program, and Reseller Program informationPartnerFormcomponent for partner inquiriesCritical issues found:
pricing.tsx)PricingFeatureTable.tsxline 32Confidence Score: 2/5
apps/website/components/pricing.tsxlines 83 and 85 - the pricing calculations must be fixed before deploymentLast reviewed commit: f5407ff