TenancyBox - Laravel SaaS Starter Kit is a powerful web-based SaaS starter kit designed to accelerate the development of SaaS platforms. It includes essential modules like Dashboard, billing, user and role management, a dynamic Module Generator, and a comprehensive Settings panel. This modern tool is built using the latest technologies including Bootstrap 5 (Front-end), Laravel 12.* (Back-end), PHP, and MySQL. Laravel makes it easy to maintain and extend the application. The system also supports dark and light themes, multiple layout options (vertical, horizontal, two-column), and four sidebar size variations all structured with clean, well-commented, and organized code.
In this guide, we explore all the features of the TenancyBox and how to use those features and options in this suite.
Thanks for purchasing this item.
Please read the complete documentation carefully before starting.
If you have any questions beyond the scope of this documentation, feel free to contact us via
codecanyon product support.
Thanks a lot!
Follow these steps to get TenancyBox up and running quickly:
Contact our support team at support@chetsapp.com or refer to the detailed installation guide below.
After all software prerequisites are done, download the ZIP archive and take the
TenancyBox-1.0.zip, then unzip it to your desired place.
htdocs/ directory.www/ directory.public_html/ directory.
var/www/html/ directory.Installation folder:
Installation folder has frontend and backend together which you can deploy in
shared hosting or live server and run your application for initial setup. It is very quick.
Step 1: Open your shared hosting cPanel.
Step 2: Click on file upload.
Step 3: Upload the TenancyBox-1.0/Installation folder content to the root
directory of public_html or You can create your own folder/subfolder inside the
public_html and upload TenancyBox-1.0/Installation folder's contents
on that folder.
Step 4: Give recursive permission as mentioned.
bootstrap/cache => 775public => 775storage => 775.env => 664Step 5: If everything went well, open your domain URL.
Installation folder to public_html/,
then your URL become https://example.com/install
public_html and
uploaded
TenancyBox-1.0/Installation folder's content inside it, then your URL becomes
https://tenancybox.example.com/install
/public_html/folder
and access URL should be https://tenancybox.example.com/install
After this, You can see the screen like this. Next, click on the Check Requirements button.
Step 6: Fulfill the server requirements by installing the required following PHP extensions, if not installed. Next, click on the Check Permissions button.
Step 7: Check and give required permissions to the folders/files. Next, click on Configure Environment button.
If you have any issues regarding folder/file permissions, you can give them manually permissions to those folders and files.
To get more help check laravel configuration documentation.
Step 9: Check and set your application environment configurations like the
application's name, email, environment, debug mode, and timezone. This setting will be replaced
with a .env file. Next, click
on the Setup Database button.
Step 10: Create a database on your web host.
Step 11: Check and set your database environment configurations like database name, host, port, username, and password. Next, click on Setup Application Button.
localhost, 127.0.0.1
3306
Step 12: Set up your SMTP mail configurations like mail driver, host, username, password, port, encryption, etc. You can skip this step at the time of installation, but it is compulsory to configure email settings for email notification. Next, click on the Install Button.
Note: You can find your server email
settings under cPanel Mail Client Manual Settings.
Start -> Email -> E-Mail Accounts -> Connect Device -> Mail Client Manual Settings
Step 13: After successful installation, you get the following screen, otherwise back to the preview steps. Next, click on the Configure Site button.
Step 14: Configure your site admin user by adding a name, username, email, and password. Next, click on the Save and Finish button.
Step 15: After successful installation you can access SaaS admin panel via
https://example.com/login
If you get any issues then read FAQ.
To get more help check composer documentation.
.env file exists on the project root folder.
If not then upload from zip.
Installation\lang\TenancyBox is easy to use among all users. Please note the below steps for How to use TenancyBox.
After login into the TenancyBox SaaS tool with your credentials, you can see the dashboard appear on the screen.
After signing up a new company. An admin user can login into the TenancyBox tool with credentials, user can see the dashboard appear on the screen.
The initial registered user has full admin rights to manage TenancyBox also we have included 3 default roles that can be manageable from HRM -> Roles
You can know more about roles, users, settings and other modules in detail in the below section.
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
/path/to/artisan with the full path to the Artisan
command of your Laravel application.
schedule:run command is executed, Laravel will evaluate your scheduled
tasks and run those that are due.
php artisan db:backup-custom.
whsec_Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·)
9f592460-...)https://nightwatch.laravel.com/us/environments/...)
composer require laravel/nightwatchphp artisan nightwatch:installconfig/nightwatch.php and set up
basic exception reporting.
.env file or configure via the SuperAdmin Panel:
NIGHTWATCH_ENABLED=trueNIGHTWATCH_URL=https://nightwatch.laravel.com/api/ingestNIGHTWATCH_TOKEN=your_project_tokenhttps://nightwatch.laravel.com/api/ingest)
.env file
Here, you will find a complete guide on how to configure the settings of the TenancyBox tool.
We've used the following packages, libraries, and assets as listed below with their official links.
| Package Name | License |
|---|---|
| glob | ISC |
| laravel-vite-plugin | MIT |
| sass | MIT |
| vite | MIT |
| vite-plugin-static-copy | MIT |
| axios | MIT |
| bootstrap | MIT |
| choices.js | MIT |
| datatables.net-bs5 | MIT |
| datatables.net-buttons | MIT |
| datatables.net-buttons-dt | MIT |
| datatables.net-responsive-bs5 | MIT |
| dropzone | MIT |
| feather-icons | MIT |
| flatpickr | MIT |
| jquery | MIT |
| jquery-validation | MIT |
| jquery.repeater | MIT |
| jszip | MIT |
| node-waves | MIT |
| particles.js | MIT |
| pdfmake | MIT |
| select2 | MIT |
| simplebar | MIT |
| sortablejs | MIT |
| summernote | MIT |
| sweetalert2 | MIT |
| swiper | MIT |
| toastify-js | MIT |
| Package Name | License |
|---|---|
| PHP | PHP License |
| barryvdh/laravel-dompdf | MIT |
| barryvdh/laravel-translation-manager | MIT |
| guzzlehttp/guzzle | MIT |
| josiasmontag/laravel-recaptchav3 | MIT |
| konekt/html | MIT |
| laravel/cashier | MIT |
| laravel/framework | MIT |
| laravel/nightwatch | MIT |
| laravel/pulse | MIT |
| laravel/sanctum | MIT |
| laravel/tinker | MIT |
| laravel/ui | MIT |
| mcamara/laravel-localization | MIT |
| nwidart/laravel-modules | MIT |
| orhanerday/open-ai | MIT |
| overtrue/laravel-pinyin | MIT |
| predis/predis | MIT |
| psr/simple-cache | MIT |
| spatie/laravel-sitemap | MIT |
| srmklive/paypal | MIT |
| stancl/tenancy | MIT |
| statikbe/laravel-cookie-consent | MIT |
| stichoza/google-translate-php | MIT |
| stripe/stripe-php | MIT |
| symfony/http-client | MIT |
| yajra/laravel-datatables | MIT |
| yajra/laravel-datatables-buttons | MIT |
| yajra/laravel-datatables-oracle | MIT |
| fakerphp/faker | MIT |
| larastan/larastan | MIT |
| laravel/boost | MIT |
| laravel/pint | MIT |
| laravel/sail | MIT |
| mockery/mockery | BSD-3-Clause |
| nunomaduro/collision | MIT |
| phpunit/phpunit | BSD-3-Clause |
This section provides guidance on customizing Laravel PHP files, SCSS styles, and JavaScript functionality, along with the necessary commands for development and production builds.
To customize Laravel backend functionality:
app/Http/Controllers/ and
Modules/*/Http/Controllers/ - Modify existing controllers or create new ones
for custom business logic
Modules/*/Entities/ - Update or create
Eloquent models for database interactions
routes/ and
Modules/*/Routes/ - Define custom routes for your application
app/Http/Middleware/ - Create custom
middleware for request filtering
resources/views/ and
Modules/*/Resources/Views/ - Customize Blade templates for your pages
# Create a new controller
php artisan make:controller YourController
# Create a new model with migration
php artisan make:model YourModel -m
# Run database migrations
php artisan migrate
# Clear application cache
php artisan cache:clear
# Clear configuration cache
php artisan config:clear
# Clear route cache
php artisan route:clear
# Clear view cache
php artisan view:clear
This application uses Laravel Modules for modular architecture. All modules are
located in the
Modules/ directory.
# Create a new module
php artisan module:make ModuleName
# List all modules
php artisan module:list
# Enable a module
php artisan module:enable ModuleName
# Disable a module
php artisan module:disable ModuleName
# Create module controller
php artisan module:make-controller ControllerName ModuleName
# Create module model
php artisan module:make-model ModelName ModuleName
# Create module migration
php artisan module:make-migration create_table_name ModuleName
# Run module migrations
php artisan module:migrate ModuleName
# Run all modules migrations
php artisan module:migrate
# Seed a specific module
php artisan module:seed ModuleName
# Create module request
php artisan module:make-request RequestName ModuleName
# Create module resource
php artisan module:make-resource ResourceName ModuleName
Modules/
βββ YourModule/
βββ Config/
βββ Database/
β βββ factories/
β βββ Migrations/
β βββ Seeders/
βββ Entities/ # Models
β βββ Attribut/
β βββ Relationship/
βββ Http/
β βββ Controllers/
β βββ Middleware/
β βββ Requests/
βββ Providers/
βββ Repositories/
βββ Resources/
βββ Routes/
β βββ api.php
β βββ web.php
βββ Tests/
βββ composer.json
βββ module.json
βββ package.json
To customize styles using SCSS:
resources/scss/app.scss - Import
and customize Bootstrap variables and your custom styles
resources/scss/
directory for modular styling
app.scss
// resources/scss/app.scss
// Custom variables (override Bootstrap defaults)
$primary: #your-color;
$secondary: #your-color;
// Import Bootstrap
@import "./node_modules/bootstrap/scss/bootstrap";
// Import your custom styles
@import 'custom/layout';
@import 'custom/components';
@import 'custom/utilities';
To customize JavaScript functionality:
resources/js/app.js - Import and
initialize JavaScript libraries
resources/js/
directory for custom functionality
// resources/js/app.js
import './bootstrap';
import './constant';
import './custom';
// Import custom modules
import './custom/your-module';
// Custom code
$(document).ready(function() {
// Your custom JavaScript
});
Use these commands to compile and build your assets:
# Install npm dependencies (first time only)
npm install
# Compile assets for development
npm run dev
# Watch for changes and auto-compile (recommended during development)
npm run watch
# Watch with polling (useful for Docker/VM environments)
npm run watch-poll
# Build and minify assets for production
npm run build
# Or using the production flag
npm run prod
npm run build before deploying to production to ensure optimized and minified
assets.
After making changes, you may need to clear various caches:
# Clear all caches in one command
php artisan optimize:clear
# Or clear individual caches:
php artisan cache:clear # Application cache
php artisan config:clear # Configuration cache
php artisan route:clear # Route cache
php artisan view:clear # Compiled views
# Optimize for production (caches config, routes, and views)
php artisan optimize
For faster development with instant updates:
# Start Vite development server with HMR
npm run dev
# In a separate terminal, run your Laravel server
php artisan serve
vite.config.js is properly configured for HMR to work correctly.
If there are any issues related to the database or SQL connection, check your environment settings such as the database name, host, port, etc.
If there are any changes in the .env file, run php artisan config:cache to
clear the configuration cache.
If the issue is related to storage, ensure you set full permissions for the storage
folder, then run php artisan storage:link to create a symbolic link.
If you encounter issues with the bootstrap/cache folder, ensure it has the proper
permissions set.
If you need help with installation or have any queries, feel free to contact us directly via our support@chetsapp.com.