Need help with saas-boilerplate?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

185 Stars 88 Forks 28 Commits 25 Opened issues


SaaS boilerplate built in Laravel, Bootstrap 4 and VueJs.

Services available


Need anything else?

Contributors list

No Data


This is a SaaS boilerplate built on top of the Laravel framework. Built to provide developers with a template to kickoff their SaaS application, without the hustle for repetitive tasks such as user account setup, subscriptions and role management.


  • Authentication
    • Login / Registration
    • Email Activation
    • Two Factor Login (only when enabled)
  • Subscription with Stripe
    • User plans
    • Team plans
  • Account (User Account)
    • Profile Update
    • Change Password
    • Two Factor Authentication
    • Subscription
      • Cancel Subscription
      • Resume Subscription
      • Swap Plan
      • Update Card
    • API Tokens
  • Single Database Multi-tenancy
  • Admin
    • User Management
      • Manage User Roles
    • Role & Permissions Management
  • Developer Panel
    • Manage OAuth Clients
    • Manage Personal Access Tokens
  • Other features
    • Filtering (extendable)
    • API access (starter template)

Note: Some features may be subjected to change. Other features may not be listed since they are under development or do not qualify as a standard / main SaaS feature. Some common features will not be listed as well.


  1. Fork, clone or download this repository.
  2. Run
    composer install
    if its the initial setup or
    composer update
  3. Setup your environment keys in .env (If .env does not exist then copy / rename .env.example as .env)
  4. Run
    php artisan app:name
    to set the name (namespace) of your app. (Remember not to live any spaces)
  5. Run
    php artisan migrate
    for initial tables setup.
  6. Optional: Run
    php artisan db:seed --class=RoleTableSeeder
    to set the initial roles and permissions, then follow
    step 7
    below to assign a user the initial permissions and roles.
  7. Optional: To create a

    super / root
    admin; Run
    php artisan admin:assign-role [email protected] admin-root
    . Substitute
    [email protected]
    with an existing user email.
    is the default root Admin role.

    Note: You must follow

    step 6
    above first to setup the root admin.


Custom Commands

  1. Admin: _Assign user a role_
    • Use
      php artisan admin:assign-role  
       is the user's email and 
       is the slug of the role you wish to assign the user.


When pushing the project to a platform or production environment, assets or urls may be broken if the platform enforces HTTPS.

To enable urls to use HTTPS:


variable in
file to

By default


does not exist in your
, just add it as a new variable and assign a boolean value

This dynamically tells Laravel to force urls to use HTTPS which is especially handy in fixing or preventing broken assets urls.

Single Database Multi-tenancy

Model setup

To start using single databse multi-tenancy call

trait on a model ```php use SAASBoilerplate\App\Tenant\Traits\ForTenants;

class Project extends Model { use ForTenants; } ```

Tenants CRUD Operations

Once you have setup the model as show above.

Just call CRUD operations directly
relationships are handled automatically.
$projects = Project::create([
    'name' => 'Project 1'
$projects = Project::get();

Normal CRUD Operations

To perform CRUD operations on models with

trait can be done by adding
scope when fetching records associated with that model.
$projects = Project::withoutForTenants()->get();

This comes in handy for example in: admin or moderation operations



routes are under the routes folder in the

Note: Tenant routes follow the same structure as other routes

The main reason we place all tenant routes separately is to handle route binding and
its much easier to know which routes are for tenants.

libraries & packages

  • Main
    • PHP (>=7.1.3)
    • Laravel (Minimal 5.6)
    • Laravel Cashier (can be switched)
  • UI (can be switched)
    • Bootstrap (v4)
    • Font awesome
    • Simple Line Icons
    • jQuery
    • VueJs
    • Development
      • nodejs
      • npm


  • Stripe (payment gateway)
  • Authy by Twilio (two factor authentication)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.