Running the Demo
SaaS4Builders ships with a comprehensive demo dataset that simulates a real SaaS application called CraftDesk — a fictional project management tool. The demo includes 12 tenants, 89 users, 3 pricing plans, 18 subscriptions, invoices, usage events, and team configurations spanning a 2-year timeline.
This demo data lets you explore every feature of the boilerplate without manual setup.
backend/.env. See Environment Configuration for setup.Seeding the Database
If you ran make install, the demo data is already in your database. To reseed at any time:
make fresh # Wipes the database, re-runs all migrations and seeders
make seed # Runs seeders on the existing database (additive)
make fresh destroys all existing data — it runs php artisan migrate:fresh --seed. Use it only when you want a clean slate.APP_ENV is local or testing. In production, only the base catalog (roles, currencies, plans, features) is seeded — no demo tenants or users.What the Seeders Create
Base Data (All Environments)
These seeders always run, regardless of environment:
| Seeder | What It Creates |
|---|---|
| RolesAndPermissionsSeeder | 4 roles (owner, admin, member, platform-admin) and their permissions |
| CurrencySeeder | 6 currencies (4 active: EUR, USD, GBP, CHF; 2 inactive: JPY, CAD) |
| ApplicationSettingsSeeder | Default application-level settings |
| SystemFeaturesSeeder | System feature: team_members (used for seat-based billing) |
| CatalogSeeder | Product, plans, features, prices, and entitlements |
Demo Data (Local/Testing Only)
The DemoSeeder creates a realistic dataset simulating 2 years of SaaS operation (April 2024 — March 2026):
| Seeder | What It Creates |
|---|---|
| DemoUserSeeder | 89 users (1 platform admin + 88 tenant members) |
| DemoTenantSeeder | 12 tenants with full profiles, billing info, and team structures |
| DemoCustomRoleSeeder | Custom tenant-specific roles (project_manager, billing_manager, etc.) |
| DemoSubscriptionSeeder | 18 subscriptions (11 active, 7 canceled/upgraded) |
| DemoInvitationSeeder | 6 pending invitations + 11 historical (accepted, expired, revoked) |
| DemoPaymentMethodSeeder | Payment methods for each paying tenant |
| DemoUsageSeeder | Usage events (API calls) with realistic daily patterns |
| DemoUsageSnapshotSeeder | Monthly usage snapshots for billing reconciliation |
| DemoInvoiceSeeder | ~168 monthly invoices with tax calculations |
| DemoStripeChargeSeeder | Stripe charges including edge cases (refunds, disputes, failures) |
| DemoNotificationSeeder | Notifications for tenant owners and platform admin |
Product and Plans
The demo product is CraftDesk, a project management SaaS with three plans:
Plans
| Plan | Pricing Model | EUR/mo | USD/mo | GBP/mo | CHF/mo | Trial |
|---|---|---|---|---|---|---|
| Starter | Flat (free) | €0 | $0 | £0 | CHF 0 | — |
| Professional | Per seat | €19 | $19 | £15 | CHF 19 | 14 days |
| Business | Per seat | €39 | $39 | £32 | CHF 39 | 14 days |
All plans are available in both monthly and yearly billing intervals. Yearly pricing is 10× the monthly rate (roughly 2 months free).
Plan Entitlements
| Feature | Starter | Professional | Business |
|---|---|---|---|
| Team Members | 1 | 15 | 50 |
| Projects | 5 | 25 | Unlimited |
| API Calls / month | 1,000 | 50,000 | 500,000 |
| Custom Domains | — | 1 | 10 |
| Advanced Analytics | — | Yes | Yes |
| Priority Support | — | — | Yes |
Demo Tenants
The 12 demo tenants represent a realistic mix of customer profiles:
| Tenant | Currency | Country | Team Size | Current Plan |
|---|---|---|---|---|
| Acme Corp | EUR | France | 14 | Business |
| Nebula Studio | EUR | France | 8 | Professional |
| Pixel Forge | USD | United States | 6 | Professional |
| CloudNine Labs | USD | United States | 18 | Business |
| Solaris Digital | GBP | United Kingdom | 5 | Professional |
| Matterhorn AG | CHF | Switzerland | 10 | Business |
| Freecraft | EUR | France | 1 | Starter (free) |
| Tinker Studio | EUR | France | 2 | Canceled |
| Launchpad Inc | EUR | France | 4 | Professional |
| Vortex Media | USD | United States | 7 | Professional |
| Nordstrom Dev | EUR | Sweden | 1 | Starter (free) |
| Atlas Collective | EUR | Germany | 12 | Business |
The tenants cover all four active currencies, multiple countries with different tax rates, and a range of subscription states including upgrades, cancellations, and free tiers.
Subscription Histories
Several tenants have realistic subscription histories:
- Acme Corp — Started on Starter, upgraded to Professional, then upgraded to Business. Three subscription records showing growth.
- Atlas Collective — Similar growth path: Starter → Professional → Business.
- Tinker Studio — Was on Professional, canceled due to budget cuts. Demonstrates the churn scenario.
- Freecraft and Nordstrom Dev — Free tier users on the Starter plan.
Demo Login Credentials
All demo users share the same password: password
Platform Admin
| Field | Value |
|---|---|
admin@craftdesk.demo | |
| Password | password |
| Access | Full platform admin dashboard — all tenants, users, metrics, catalog management |
Tenant Owners
| Tenant | Plan | |
|---|---|---|
| Acme Corp | jane@acme-corp.demo | Business |
| Nebula Studio | sarah@nebula.demo | Professional |
| Pixel Forge | chris@pixelforge.demo | Professional |
| CloudNine Labs | alex@cloudnine.demo | Business |
| Solaris Digital | will@solaris.demo | Professional |
| Matterhorn AG | lukas@matterhorn.demo | Business |
| Freecraft | max@freecraft.demo | Starter |
| Tinker Studio | ian@tinker.demo | Canceled |
| Launchpad Inc | sam@launchpad.demo | Professional |
| Vortex Media | anna@vortex.demo | Professional |
| Nordstrom Dev | erik@nordstrom.demo | Starter |
| Atlas Collective | lena@atlas.demo | Business |
Users with Custom Roles
| User | Tenant | Custom Role |
|---|---|---|
bob@acme-corp.demo | Acme Corp | billing_manager |
alice@acme-corp.demo | Acme Corp | project_manager |
marcus@nebula.demo | Nebula Studio | support_lead |
tara@launchpad.demo | Launchpad Inc | finance_admin |
Demo Walkthrough
1. Log In as a Tenant Owner
Open http://localhost:3000 and log in with:
- Email:
jane@acme-corp.demo - Password:
password
This logs you into Acme Corp — a Business plan tenant with 14 team members, the most complete demo profile.
2. Explore the Tenant Dashboard
Once logged in, you can explore:
- Billing — Active Business subscription, invoices with tax details, payment method on file.
- Team — 14 members with different roles (owner, admin, member, and custom roles like billing_manager and project_manager).
- Usage — API call usage stats over time.
- Settings — Tenant and user-level settings with cascaded resolution.
- Invitations — 2 pending invitations waiting to be accepted.
3. Try the Platform Admin Dashboard
Log out and log in as the platform admin:
- Email:
admin@craftdesk.demo - Password:
password
The admin dashboard gives you a global view:
- All tenants — 12 demo tenants with their subscription status, team size, and billing info.
- Catalog management — Edit the CraftDesk product, plans, features, and pricing.
- Metrics — Platform-level analytics (MRR, active subscriptions, churn).
- User management — All 89 users across the platform.
4. Register a New User
To test the full onboarding flow:
- Log out of any existing session.
- Click "Register" and create a new account.
- The onboarding flow guides you through: create tenant → pick a plan → Stripe Checkout → dashboard.
backend/.env. Without STRIPE_KEY and STRIPE_SECRET configured, the billing flow will not work. See Environment Configuration for setup instructions.For Stripe test payments, use the test card number 4242 4242 4242 4242 with any future expiration date and any CVC.
5. Explore Different Tenant Profiles
Log in as different tenant owners to see how the application adapts:
max@freecraft.demo— Free Starter plan. Limited features, no billing section.ian@tinker.demo— Canceled subscription. See the canceled state UI.alex@cloudnine.demo— Large Business tenant with 18 members and high API usage.lukas@matterhorn.demo— Swiss tenant billed in CHF. Different currency formatting.
6. Test Custom Roles
Log in as bob@acme-corp.demo (password: password). Bob has the billing_manager custom role — he can view and manage billing but cannot manage team members. Compare his access with Jane's (owner) to see role-based access control in action.
Emails in Development
All emails sent by the application (invitations, notifications, password resets) are captured by Mailpit. No real emails are sent.
View captured emails at http://localhost:8025.
Resetting Demo Data
To return to the initial demo state at any time:
make fresh
This drops all tables, re-runs migrations, and re-seeds everything — including the full demo dataset.
What's Next
- Environment Configuration — Set up Stripe keys to enable billing flows.
- Deployment Guide — Prepare for production (do not deploy with demo data).
- Architecture Overview — Understand the code structure before customizing.