A production-ready Laravel SaaS starter kit with authentication, billing, teams, and everything you need to launch faster.
Built by XCO Agency
- π Authentication & Security - Complete system with standard login, 2FA, password resets, profile management, and verified domains.
- π’ Multi-tenant Workspaces - Seamless workspace management allowing users to operate within parallel organizational structures.
- π₯ Team Management - Robust invitation system with granular workspace-level roles (Owner, Admin, Member).
- π³ Stripe Billing - Integrated Laravel Cashier handles subscription provisioning, secure customer portals, and dynamic pricing tiers per workspace.
- π Advanced Admin Panel - Global super-admin dashboard for user impersonation, cross-workspace monitoring, and central operations.
- π Announcements System - Global notification broadcasts with colored typings, dynamic scheduling, and dismissible states.
- π© Feature Flags (Pennant) - Database-driven feature flagging with targeted, workspace-specific rollout mechanisms.
- π System Audit Logs - Complete change history and system-wide visibility via Spatie Activitylog tracking.
- π Elegant UI Components - Beautiful React 19 light/dark themes powered by Shadcn/UI and smooth Tailwind CSS v4 styling.
- π·οΈ Custom Fields & Tags - Extensible workspace metadata with custom field definitions, tagging system, and color-coded labels.
- π Workspace Templates - Save and reuse workspace configurations for rapid setup of new workspaces.
- π¬ Workspace Comments & Announcements - Collaborative commenting on activities and internal workspace announcements.
- β‘ Modern Architecture - Laravel 12 + Inertia.js v2, strictly typed via Pest tests (1,400+ tests out-of-the-box).
- PHP 8.4 or higher
- Composer
- Node.js 22+ and npm/pnpm
- SQLite, MySQL, or PostgreSQL
- Stripe account (for billing features)
-
Clone the repository
git clone https://github.com/xco-agency/laravel-saas-starter.git cd laravel-saas-starter -
Install PHP dependencies
composer install
-
Install JavaScript dependencies
npm install # or pnpm install -
Set up environment
cp .env.example .env php artisan key:generate
-
Configure your
.envfileAPP_NAME="Laravel SAAS Starter" APP_URL=http://localhost:8000 DB_CONNECTION=sqlite # or use MySQL/PostgreSQL # DB_CONNECTION=mysql # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=your_database # DB_USERNAME=your_username # DB_PASSWORD=your_password # Stripe Configuration (required for billing) STRIPE_KEY=your_stripe_key STRIPE_SECRET=your_stripe_secret STRIPE_WEBHOOK_SECRET=your_webhook_secret
-
Run migrations
php artisan migrate
-
Build frontend assets
npm run build # or pnpm build -
Start the development server
composer run dev # or separately: php artisan serve npm run dev
After installation, you can:
- Visit
http://localhost:8000to see the landing page - Register a new account
- Create your first workspace
- Invite team members
- Set up billing with Stripe
Run the test suite using Pest:
php artisan testRun specific test files:
php artisan test tests/Feature/Auth/LoginTest.php- Backend: Laravel 12
- Frontend: React 19 with Inertia.js v2
- Styling: Tailwind CSS v4
- Authentication: Laravel Fortify
- Billing: Laravel Cashier (Stripe)
- Testing: Pest PHP v4
- Activity Tracking: Spatie Activitylog
- Feature Flags: Laravel Pennant
- Code Quality: Laravel Pint, Prettier, ESLint
For a comprehensive review of the project's internal architecture, component strategies, and feature usage instructions, explore the dedicated /docs folder:
Core Authentication | Workspaces | Team Management | Session Management
Billing & Usage Billing | Seat-Based Billing | Usage Dashboard | Plan Comparison | Billing History | Cancellation Flow
Admin Admin Panel | Impersonation | System Health | Scheduled Tasks | Data Retention | SEO Management
Platform Features Global Announcements | Feature Flags | Audit Logs | Changelog | Email Templates | Webhooks | Real-time Notifications | Feedback | Onboarding Checklist | Advanced Search | Custom Fields | Workspace Tags | Workspace Templates | Workspace Comments | Workspace Announcements | Activity Reactions | Public Status Page
Security & Compliance 2FA Enforcement | GDPR Data Export | Account Deletion | Security | Connected Accounts
API & Integrations Workspace API Keys | API Authentication | API Documentation | API Usage Dashboard
Frontend Internationalization | UI & Theming
βββ app/
β βββ Http/Controllers/ # Standard and Admin-specific controllers
β βββ Models/ # Global Eloquent structures
β βββ Providers/ # Extensible application services (Pennant configs etc)
βββ database/ # Robust migrations, factories and hydration seeders
βββ docs/ # In-depth architectural feature documentation!
βββ resources/
β βββ js/
β β βββ components/ # Reusable shadcn/ui & generic ui components
β β βββ layouts/ # Strict domain boundaries (admin vs customer ui)
β β βββ pages/ # Inertia frontend pages
βββ tests/ # Standardized Pest tests (1,400+ available)
Workspaces are multi-tenant organizations. Users can:
- Create multiple workspaces
- Switch between workspaces
- Invite team members to workspaces
- Assign roles (owner, admin, member)
Configure Stripe in your .env file. The application supports:
- Subscription management
- Multiple pricing tiers
- Billing portal access
- Webhook handling
Endpoint: /stripe/webhook
Required Events:
customer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_succeededinvoice.payment_failedinvoice.payment_action_required
Add new languages by:
- Creating translation files in
resources/js/locales/ - Adding the locale to your configuration
- Updating the language selector component
tests.yml: runs Pest test suite on PHP 8.2, 8.3, and 8.4lint.yml: runs Laravel Pint, Prettier check, and ESLintdependency-audit.yml: runscomposer auditandnpm audit --audit-level=highcodeql.yml: performs CodeQL static analysis for PHP and JavaScript/TypeScriptrelease.yml: runs release-please for automated releasesstale.yml: marks and closes inactive issues/PRs
- Install
actand Docker. - Create
.actrcfor Apple Silicon compatibility:
-P ubuntu-latest=catthehacker/ubuntu:act-latest
--container-architecture linux/amd64
--env PATH=/opt/acttoolcache/node/24.14.0/x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- Run workflows:
act push -j quality -W .github/workflows/lint.yml
act push -j audit -W .github/workflows/dependency-audit.yml
act push -j ci -W .github/workflows/tests.yml --matrix php-version:8.4release.ymlandstale.ymlrequireGITHUB_TOKEN.codeql.ymlshould be validated on GitHub-hosted runners because it needssecurity-events: writepermissions.dependency-audit.ymlcurrently fails because of npm advisories in the lockfile.tests.ymlmay produce419CSRF responses underactdespite passing on GitHub-hosted runners.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
This project is open-sourced software licensed under the MIT license.
Built with β€οΈ by XCO Agency
For support, please open an issue on GitHub or contact us at support@xco.agency
Ready to build your SaaS? Get started today and launch 10x faster! π