Skip to main content

Wave Review 2026: The Free Laravel SaaS Boilerplate

·StarterPick Team
wavelaravelphpreviewboilerplate2026

TL;DR

Wave is the most complete free Laravel SaaS boilerplate. It includes admin panel, blog, themes, API tokens, notifications, billing (basic), and an announcements system — all for free. The billing is less polished than Laravel Spark ($99/year), but Wave's breadth is exceptional for a free tool. Best for PHP developers who want a full application foundation.

What You Get (Free)

Source: github.com/thedevdojo/wave

Core features:

  • Laravel (latest) + Livewire
  • Auth: Laravel Breeze (email, OAuth)
  • Billing: Stripe via custom implementation
  • Admin panel: Complete Voyager-based admin
  • Blog: Full blog with categories, tags, authors
  • Themes: Multiple design themes
  • API tokens: Personal access tokens for API integration
  • Notifications: In-app and email
  • Announcements: Product update notifications
  • User profile and settings
  • Changelog/updates system

The Admin Panel

Wave uses Voyager, a comprehensive Laravel admin package:

// Wave admin — manage users, subscriptions, blog posts
// All via Voyager's CRUD interface
Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();  // Auto-generates admin routes for all models
});

The admin includes:

  • User management (view, edit, delete, impersonate)
  • Subscription status overview
  • Blog post management
  • Settings configuration
  • Role and permission management

No custom admin code needed — Voyager provides it.


The Theme System

Wave ships with multiple themes that can be swapped:

// config/wave.php
return [
    'show_changelog' => true,
    'billing_plan' => 'recurring',  // recurring or lifetime
    'theme' => env('WAVE_THEME', 'anchor'),  // Swap themes
    'plans' => [
        [
            'name'           => 'Basic',
            'monthly_id'     => env('STRIPE_BASIC_MONTHLY_PRICE_ID'),
            'yearly_id'      => env('STRIPE_BASIC_YEARLY_PRICE_ID'),
            'features'       => ['5 Projects', '10GB Storage', 'Email Support'],
        ],
        [
            'name'           => 'Pro',
            'monthly_id'     => env('STRIPE_PRO_MONTHLY_PRICE_ID'),
            'yearly_id'      => env('STRIPE_PRO_YEARLY_PRICE_ID'),
            'features'       => ['Unlimited Projects', '50GB Storage', 'Priority Support'],
        ],
    ],
];

Themes change the entire marketing site and dashboard appearance. This is rare in boilerplates.


The Blog System

Wave's blog is fully-featured:

// Blog with categories, tags, and multiple authors
// app/Models/Post.php (extended from Wave)

class Post extends WavePost
{
    // Custom scopes
    public function scopeFeatured($query)
    {
        return $query->where('featured', true)->latest()->take(3);
    }
}

SEO meta tags, featured images, reading time, comment sections — all included.


Billing Limitations vs Spark

Wave's billing is functional but not as polished as Laravel Spark:

// Wave billing — simpler but limited
// Plans defined in config, not dynamically managed
// No per-seat billing
// No promo code system
// No PDF invoice generation (Spark has this)
// No Paddle support (Stripe only)

For simple subscription SaaS (one plan, one user), Wave's billing is sufficient. For complex billing (per-seat, usage-based, international), upgrade to Spark.


Wave vs Laravel Spark

FeatureWave (Free)Laravel Spark ($99/yr)
Admin panel✅ Voyager
Blog
Themes
Billing quality⭐⭐⭐⭐⭐⭐⭐⭐
Per-seat billing
Paddle support
Promo codes
PDF invoices
MaintenanceGoodExcellent (Taylor)

The pattern: Wave gives you the full application; Spark gives you sophisticated billing. Many teams use both.


Wave + Spark Together

The common Laravel SaaS setup for teams that need both completeness and billing quality:

Wave (free) → Application foundation
  + Laravel Spark ($99/yr) → Billing replacement
  + Custom admin extensions → Additional features

This gives you Wave's admin panel, blog, and themes plus Spark's per-seat billing and Paddle support. The integration requires some work but is documented in the community.


Who Should Use Wave

Good fit:

  • PHP/Laravel developers wanting a complete free foundation
  • Products where blog and content management are important
  • Teams who need admin panel without building it
  • Early-stage products where billing simplicity is fine
  • Developers who want to customize extensively (it's open source)

Bad fit:

  • Products needing sophisticated billing (teams, per-seat, Paddle)
  • JavaScript-first teams
  • Founders who need the fastest possible launch (more configuration required than ShipFast equivalents)

Final Verdict

Rating: 3.5/5

Wave is exceptional value — a complete Laravel SaaS application for free. The Voyager admin, blog system, and theme flexibility are features that paid boilerplates don't include. The billing limitations are real but acceptable for many products. For Laravel developers starting a content-heavy or admin-heavy SaaS, Wave is the best free starting point.


Compare Wave with other Laravel starters on StarterPick.

Check out this boilerplate

View Wave on StarterPick →

Comments