@extends('layouts.frontend') @section('title', 'Pricing Plans - WebPilot AI Website Builder') @section('meta_description', 'Choose the perfect WebPilot AI plan for your needs. Explore our flexible pricing options for individuals, businesses, and agencies.') @section('meta_keywords', 'webpilot ai pricing, ai website builder cost, subscription plans, website builder packages') @section('content')

Simple, Transparent Pricing

Find the perfect plan to unlock the full potential of AI-powered website creation.

{{-- Pricing Table --}} @if($subscriptionPlans->isEmpty())

No Pricing Plans Available

We are currently updating our pricing. Please check back soon!

@else @php $numPlans = $subscriptionPlans->count(); $gridClasses = 'grid-cols-1'; // Default: 1 column on small screens if ($numPlans >= 2) { $gridClasses .= ' md:grid-cols-2'; // 2 columns on medium screens if 2+ plans } if ($numPlans >= 3) { $gridClasses .= ' lg:grid-cols-3'; // 3 columns on large screens if 3+ plans } @endphp
@foreach($subscriptionPlans as $plan) @php $isPopular = (bool) $plan->is_popular; $cardClasses = $isPopular ? 'bg-blue-600 dark:bg-blue-700 text-white ring-2 ring-blue-500 dark:ring-blue-600 transform scale-105 hover:shadow-2xl' // Popular plan already scaled : 'bg-slate-50 dark:bg-slate-700 border border-slate-200 dark:border-slate-600 hover:scale-[1.02] hover:shadow-2xl'; // Non-popular plan hover effect $buttonClasses = $isPopular ? 'bg-white hover:bg-blue-50 text-blue-600' : ($plan->price == 0 ? 'bg-slate-200 dark:bg-slate-600 hover:bg-slate-300 dark:hover:bg-slate-500 text-gray-700 dark:text-white' : 'bg-blue-600 hover:bg-blue-700 text-white'); $planTitle = $plan->name; if ($plan->target_role) { $planTitle = Illuminate\Support\Str::title(str_replace('_', ' ', $plan->target_role)) . ' ' . $plan->name; } $planNameColor = $isPopular ? 'text-white' : ($plan->price == 0 ? 'text-blue-600 dark:text-blue-400' : ($isPopular ? 'text-white' : 'text-purple-600 dark:text-purple-400')); $priceColor = $isPopular ? 'text-white' : 'text-gray-800 dark:text-white'; $featureTextColor = $isPopular ? 'opacity-90' : 'text-gray-600 dark:text-gray-300'; $featureIconColor = $isPopular ? 'text-green-300' : 'text-green-500'; $descriptionColor = $isPopular ? 'text-blue-100' : 'text-gray-500 dark:text-gray-400'; $initialFeaturesToShow = 5; @endphp
@if($isPopular) Most Popular @endif

{{ $planTitle }}

{{ $plan->currency_symbol ?? '$' }}{{ number_format($plan->price, 2) }} /{{ $plan->interval_count > 1 ? $plan->interval_count . ' ' : '' }}{{ Illuminate\Support\Str::ucfirst(Illuminate\Support\Str::plural($plan->interval, $plan->interval_count)) }}

{{ $plan->description }}

@if($plan->features && count($plan->features) > 0)

Key Features:

    @foreach(collect($plan->features)->take($initialFeaturesToShow) as $featureItem) @php $featureKey = $featureItem['key']; $featureLimit = $featureItem['limit'] ?? null; $featureDisplayName = Illuminate\Support\Str::title(str_replace(['_', '-'], ' ', $featureKey)); // Attempt to find the feature's display name from module definitions foreach (($moduleDefinitions ?? []) as $moduleData) { // Added ?? [] for safety if undefined if (isset($moduleData['features'][$featureKey]['name'])) { $featureDisplayName = $moduleData['features'][$featureKey]['name']; break; } } @endphp
  • {{ $featureDisplayName }} @if(!is_null($featureLimit)) ({{ $featureLimit == 0 ? 'Unlimited' : $featureLimit }}) @endif
  • @endforeach @if(count($plan->features) > $initialFeaturesToShow)
  • @endif
@else
{{-- Placeholder for consistent height if no features --}} @endif
{{-- Credits Awarded --}} @if($plan->credits_awarded_on_purchase > 0 || $plan->credits_awarded_on_renewal > 0)

Credits Included:

@if($plan->credits_awarded_on_purchase > 0) • On Purchase: {{ number_format($plan->credits_awarded_on_purchase) }} @endif @if($plan->credits_awarded_on_renewal > 0) • On Renewal: {{ number_format($plan->credits_awarded_on_renewal) }} @endif
@endif @if($plan->trial_period_days > 0)

{{ $plan->trial_period_days }}-day free trial available

@endif {{-- Link to registration with plan slug, or to subscription checkout if user is logged in --}}
{{-- Wrapper for CTA button --}} @auth Choose Plan @else {{ $plan->price == 0 ? 'Get Started Free' : 'Sign Up' }} @endauth
{{-- Features Modal --}}

All Features for {{ $planTitle }}

    @foreach($plan->features as $featureItemModal) @php $featureKeyModal = $featureItemModal['key']; $featureLimitModal = $featureItemModal['limit'] ?? null; $featureDisplayNameModal = Illuminate\Support\Str::title(str_replace(['_', '-'], ' ', $featureKeyModal)); foreach (($moduleDefinitions ?? []) as $moduleDataModal) { // Added ?? [] for safety if (isset($moduleDataModal['features'][$featureKeyModal]['name'])) { $featureDisplayNameModal = $moduleDataModal['features'][$featureKeyModal]['name']; break; } } @endphp
  • {{ $featureDisplayNameModal }} @if(!is_null($featureLimitModal)) ({{ $featureLimitModal == 0 ? 'Unlimited' : $featureLimitModal }}) @endif
  • @endforeach
{{-- End of Modal Dialog --}}
{{-- End of Plan Card Div --}} @endforeach
@endif

All plans include access to our intuitive visual editor, SEO assistant, and website version history.

Need a custom solution? Get in touch with us!

@endsection