SaaS Template
A Laravel template for launching a subscription-based software product. It combines a Filament 4 panel, Stripe billing through Laravel Cashier, a product catalog synchronized with Stripe, free trials, role-based access, and the operational tooling of the Web App Template.
Live Demo
Try the product at https://demo-saas.omega-studio-software.com. The demo instances go live shortly.
| Account | Role |
|---|---|
admin@demo.omega-studio-software.com | Admin |
user@demo.omega-studio-software.com | User |
All demo accounts use the password demo1234.
Key Features
Subscription Billing
- Stripe Checkout —
/subscription/buy/{product-slug}starts a Cashier checkout session for the monthly price of a product. - Free Trial — Users who register through the panel receive a 30-day trial created through Stripe.
- Access Gating — A
Subscribedmiddleware sends Customers without an active subscription or trial to the billing page. - Billing Portal — Subscribers are redirected to the Stripe billing portal for payment methods and invoices.
- Webhook Sync — A queued listener keeps subscription status and end dates in sync with Stripe events.
- Product Catalog — A Products resource whose records create and update the matching Stripe product and monthly price.
Panel & Operations
- Filament Panel at
/app— Login, registration, profile, and a Billing item in the user menu for Customers. - Roles & Permissions —
Super AdminandCustomerroles via Spatie Permissions with per-model permissions and policies. - Activity, Email, and SMS Logs — Audit trail for users and subscription fields, stored outgoing emails, and a Vonage SMS job and log.
- Health & Logs — Health Check Results and View Log pages for Super Admin.
- Backups & Monitoring — Scheduled Spatie Backup, health heartbeat, and Sentry integration.
- Deployment — A Laravel Envoy
deploystory. - Live Demo Mode — Optional
DEMO_MODEwith seeded accounts, a banner, guarded credentials, and a nightly reset.
Who It Is For
Developers and founders who want to start a subscription product from a working baseline: sign-up, a free trial, Stripe checkout, a billing portal, access control by subscription state, and an admin panel are already connected.
Tech Stack
Languages
- PHP 8.2+
- JavaScript (ES modules)
Frameworks
- Laravel 12
- Filament 4 (Admin Panel)
- Livewire 3 (via Filament)
- Tailwind CSS 4
Packages & Tools
- Laravel Cashier 16 and the Stripe PHP library
- Spatie Laravel Permission, Activity Log, Backup, Health
- Sentry Laravel, Vonage Client, Flysystem AWS S3
- Pest 4 (tests), Laravel Pint (code style)
- Laravel Sail, Envoy, Pail, Boost (dev)
- Vite 7, Jest, ESLint, Prettier
System Requirements
- PHP 8.2 or newer
- Composer and Node.js with npm
- A database (MySQL by default in
.env.example) - A Stripe account; use test keys for development
- Stripe CLI for forwarding webhooks locally
- A mail server or service for outgoing email
Product creation and the trial both call the Stripe API, so valid Stripe keys must be configured before seeding products or registering users.