Laravel Spark Review 2026: Taylor Otwell's Official SaaS Starter
TL;DR
Laravel Spark is the best billing scaffold for Laravel SaaS — built by Taylor Otwell (Laravel's creator), well-maintained, and includes per-seat billing, team management, and Stripe/Paddle support. At $99/year, it's a subscription not a one-time purchase. For PHP teams building subscription SaaS, it's the standard choice.
What You Get
Price: $99/year (Spark Stripe) or $99/year (Spark Paddle)
Core features:
- Laravel integration (Blade or Livewire frontend)
- Billing: Stripe OR Paddle
- Subscriptions: Monthly/yearly plans
- Per-seat billing (team-based pricing)
- Free trials
- Promo codes
- Invoices and billing history
- Team management (invite, roles, permissions)
- Customer portal
What it's NOT: A full application boilerplate. Spark handles billing and teams; you build the rest of your app on top of Laravel.
Laravel Spark vs Full Boilerplates
This is the critical distinction: Spark is a billing package, not a complete boilerplate.
Laravel Spark adds to your Laravel app:
├── /billing ← Subscription management UI
├── /teams ← Team/organization management
└── /invoices ← Invoice history and downloads
Your app builds on top:
├── /dashboard ← Your product
├── /settings ← Your product
└── /features ← Your product
Compare to Wave (the free alternative that IS a full boilerplate): Wave includes blog, admin, themes, and a complete application foundation. Spark is purpose-built for billing.
The Billing Implementation
Spark's billing is mature and handles edge cases:
// Monthly vs yearly subscription
Route::get('/pricing', function () {
return view('pricing', [
'plans' => Spark::plans(),
]);
});
// Check plan access in controllers
public function dashboard(Request $request)
{
if ($request->user()->subscribed('default')) {
// User has active subscription
}
if ($request->user()->subscribedToProduct('pro')) {
// User is on pro plan
}
}
// Blade directive for feature gating
@spark_can('view-advanced-analytics')
<x-analytics-dashboard />
@endcan
// Per-seat billing — charge by team member count
// Spark handles this automatically
$user->teams()->first()->subscription('default')
->incrementAndInvoice(); // Charge for new seat
// Proration when upgrading mid-cycle
$user->subscription('default')->swap('price_pro_monthly');
// Stripe handles proration automatically
Team Support
Spark's team management is well-implemented:
// Invite team member
$team->invite($email, 'member');
// Check permissions
if ($user->hasTeamRole($team, 'admin')) {
// Admin-only action
}
// Team ownership transfer
$team->transferOwnership($newOwner);
// Member removal with billing update (per-seat)
$team->removeUser($member);
// Spark automatically decrements seat count
Stripe vs Paddle Version
Laravel Spark comes in two flavors:
| Feature | Spark Stripe | Spark Paddle |
|---|---|---|
| Tax compliance | You handle | Paddle handles (MoR) |
| Transaction fee | ~2.9% + $0.30 | ~5% + $0.50 |
| International | Manual VAT | Included |
| Developer control | Maximum | Less |
| Best for | US-focused SaaS | International SaaS |
Paddle version is ideal for international sales where tax compliance is painful.
What's Missing
1. No Admin Panel
Spark doesn't ship an admin dashboard. You see billing data through Stripe/Paddle's dashboards, not an app-level admin.
2. No Full Application Foundation
You need to build or use a separate boilerplate for the application structure. Wave fills this gap (free), but Wave + Spark doubles the packages to maintain.
3. Vue/React Frontend Only
Spark's billing UI requires either Vue or React — no Blade-only option for teams preferring pure server-rendered PHP.
4. Annual Subscription Model
$99/year is affordable, but it's a recurring cost. If you abandon the project, your billing UI may fall behind Laravel releases.
Wave: The Free Alternative
Wave (thedevdojo.com/wave) is a free Laravel SaaS boilerplate that includes its own subscription management:
| Feature | Laravel Spark | Wave |
|---|---|---|
| Price | $99/year | Free |
| Billing | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Admin panel | ❌ | ✅ |
| Blog | ❌ | ✅ |
| Themes | ❌ | ✅ |
| Active maintenance | ✅ (Taylor) | ✅ |
Spark for billing quality; Wave for a complete application foundation.
Who Should Buy Laravel Spark
Good fit:
- PHP/Laravel teams building subscription SaaS
- Products where billing complexity is a core concern
- International products (Spark Paddle for Merchant of Record)
- Teams adding billing to an existing Laravel app
Bad fit:
- JavaScript-first teams (use ShipFast/Supastarter)
- Projects needing a complete application boilerplate (Wave includes more for free)
- Solo founders who want one-time purchase
Final Verdict
Rating: 4/5
Laravel Spark is the standard for PHP SaaS billing — maintained by Laravel's creator, well-tested, and handles the billing complexity you don't want to build. The annual subscription model is a reasonable price for the maintenance and updates. If you're building a Laravel SaaS, the question isn't whether to use Spark — it's whether to use Spark's billing vs Wave's more complete (but less polished) billing implementation.
Compare Laravel Spark with other Laravel starters on StarterPick.
Check out this boilerplate
View Laravel Spark on StarterPick →