{{-- Header --}}
Pricing

Simple, transparent pricing

Scale your team with confidence. Upgrade or downgrade any time.

{{-- Interval Toggle --}}
Monthly Yearly Save 20%
{{-- Current Plan Badge --}} @php $currentPlan = auth()->user()->activePlan(); @endphp @if($currentPlan)
Currently on {{ $currentPlan->name }} plan
@endif
{{-- Plans Grid --}}
@foreach(\App\Models\SubscriptionPlan::orderBy('price')->get() as $plan) @php $isCurrent = $currentPlan && $currentPlan->id === $plan->id; $isPopular = $plan->is_popular; $colors = [ 'free' => ['from' => '#1e293b', 'accent' => '#64748b', 'badge' => 'bg-slate-700 text-slate-300'], 'pro' => ['from' => '#1d3a6e', 'accent' => '#3b82f6', 'badge' => 'bg-blue-500/20 text-blue-300'], 'business' => ['from' => '#1a1040', 'accent' => '#8b5cf6', 'badge' => 'bg-violet-500/20 text-violet-300'], ]; $c = $colors[$plan->slug] ?? $colors['free']; @endphp
{{-- Popular badge --}} @if($isPopular)
Most Popular
@endif {{-- Current badge --}} @if($isCurrent)
Active
@endif
{{-- Plan label --}} {{ $plan->name }} {{-- Price --}}
@if($plan->price == 0) Free @else @endif

{{ $plan->description }}

{{-- Limits highlight --}}
{{ $plan->project_limit }}
{{ str('Project')->plural($plan->project_limit) }}
{{ $plan->user_limit }}
Members / Project
{{-- Feature list --}}
    @foreach(array_filter($plan->features()) as $feature)
  • {{ $feature }}
  • @endforeach
{{-- CTA --}}
@if($isCurrent) @elseif($plan->price == 0) @else
@endif
@endforeach
{{-- FAQ strip --}}

All plans include unlimited issues, labels, and file attachments up to 10MB. View full feature comparison →