@extends('layouts.app') @section('title', 'Pricing') @section('meta_description', 'One price for the whole studio, however many artists. Free for one artist, $29.99 a month for up to six, with consent forms, client records and the request queue on every tier.') @php // One source for the visible FAQ and the FAQPage schema below, so a Q&A // edited in one place can never disagree with the other. $faqs = [ 'Does adding an artist cost more?' => 'No. The price covers the studio, and Starter carries six artists at $29.99. You are never billed per head, so hiring does not change your bill until you outgrow the tier.', 'Can I move my existing clients over?' => 'Yes. Get in touch and we will help you bring across client records and upcoming bookings.', 'What happens if I cancel?' => 'Your studio stays reachable so you can export what you need. Nothing is deleted the moment you stop paying.', 'Do I need Stripe to take deposits?' => 'No. You can record a deposit as taken in person or by transfer. Connecting Stripe adds paying online.', 'Is there a free plan?' => 'Yes. Solo is free for one artist, with no time limit and no card. There is also a live demo if you would rather look before signing up at all.', 'Who can see my studio\'s data?' => 'Only your studio. Client records, consent forms and galleries are scoped to you and nobody else can reach them.', ]; @endphp {{-- Rich-result eligible: Google can render these questions directly under the search listing. Built from the same $faqs the page renders, and encoded with json_encode so the output is guaranteed-valid JSON. --}} @section('schema') @php $faqSchema = [ '@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => collect($faqs)->map(fn ($answer, $question) => [ '@type' => 'Question', 'name' => $question, 'acceptedAnswer' => ['@type' => 'Answer', 'text' => $answer], ])->values()->all(), ]; @endphp @endsection @section('content')

Pricing

Priced per studio, not per artist.

Most software in this category charges for every chair you fill, so growing costs you twice. A six-artist shop pays Booksy about $150 a month. Here it's $29.99 for the shop, and free while you're working on your own.

@include('billing.partials.plan-cards')

Solo needs no card at all. Paid plans bill monthly through PayPal, and you can cancel from your settings whenever you like.

On every plan

The parts nobody should pay extra for.

Consent, client records and the request queue are how the product works, not upsells. They're on the cheapest plan too.

@foreach([ 'Request queue' => 'Clients send the idea before they see a calendar. You review, then offer times.', 'Consent forms' => 'Signed before the session, timestamped to the appointment, kept on file.', 'Client records' => 'Every session, reference and note in one place per person.', 'Reminders' => 'Email before the session so fewer people forget they booked.', ] as $title => $body)
{{ $title }}
{{ $body }}
@endforeach

Side by side

Where the plans differ.

@foreach($plans as $plan) @endforeach @foreach([ ['label' => 'Clients', 'column' => 'max_clients'], ['label' => 'Appointments per month', 'column' => 'max_appointments_per_month'], ['label' => 'Artists', 'column' => 'max_artists'], ['label' => 'SMS per month', 'column' => 'max_sms_per_month'], ] as $row) @foreach($plans as $plan) @endforeach @endforeach @foreach([ ['label' => 'Take payments online', 'column' => 'allows_payment_processing'], ['label' => 'Marketing automation', 'column' => 'allows_marketing_automation'], ['label' => 'Advanced analytics', 'column' => 'allows_advanced_analytics'], ['label' => 'White-label branding', 'column' => 'allows_white_label'], ] as $row) @foreach($plans as $plan) @endforeach @endforeach
Plan limits compared
Limit{{ $plan->name }}
{{ $row['label'] }} @if($plan->{$row['column']} === null) Unlimited @elseif((int) $plan->{$row['column']} === 0) {{-- A zero allowance is "not included", not a quantity. --}} — @else {{ number_format($plan->{$row['column']}) }} @endif
{{ $row['label'] }} @if($plan->{$row['column']}) @else — @endif

Questions

Before you decide.

@foreach($faqs as $question => $answer)
{{ $question }}
{{ $answer }}
@endforeach

Start free. Decide later.

One artist runs on Solo for nothing, with no card and no countdown. Move up when you hire, not before.

@endsection