PHPackages                             bitshost/upmvc-saas - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. bitshost/upmvc-saas

ActiveProject[Authentication &amp; Authorization](/categories/authentication)

bitshost/upmvc-saas
===================

upMVC-SaaS. Multi-tenant SaaS starter built on the upMVC PHP framework. Modular MVC, JWT auth, tenant isolation, rate limiting, plan gating.

00PHP

Since Jun 7Pushed 4w agoCompare

[ Source](https://github.com/upMVC/upMVC-SaaS)[ Packagist](https://packagist.org/packages/bitshost/upmvc-saas)[ RSS](/packages/bitshost-upmvc-saas/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)DependenciesVersions (6)Used By (0)

upMVC-SaaS
==========

[](#upmvc-saas)

Ready-to-run SaaS starter application built from:

- `bitshost/upmvc` — standalone upMVC project/runtime and reusable kernel
- `bitshost/upmvc-saas-pack` — installable SaaS module pack

This repo is the **application layer**. It owns the public entry point, environment, package registration, setup script, and project-specific configuration. The framework code and SaaS modules are pulled in through Composer.

Current Local Development Setup
-------------------------------

[](#current-local-development-setup)

This branch uses local path repositories while the pack architecture is being tested:

```
"repositories": [
  { "type": "path", "url": "../upMVC", "options": { "symlink": true } },
  { "type": "path", "url": "../upMVC-SaaS-Pack", "options": { "symlink": true } }
]
```

The app currently requires:

```
"bitshost/upmvc": "dev-feature/package-module-packs as 2.1.0",
"bitshost/upmvc-saas-pack": "dev-main as 1.0.0"
```

When the branches are released, these become normal version constraints.

What This App Contains
----------------------

[](#what-this-app-contains)

```
public/                 front controller and web server entry
src/Etc/.env.example    app environment template
src/Etc/packages.php    package provider registration
database/demo.sql       demo schema and seed data
scripts/setup.php       create-project setup helper
docs/                   starter documentation

```

What it does **not** contain anymore:

```
src/Common/             provided by bitshost/upmvc
src/Etc kernel files    provided by bitshost/upmvc
src/Modules/            provided by bitshost/upmvc-saas-pack, unless overridden locally

```

Architecture
------------

[](#architecture)

```
HTTP request
  -> public/index.php
  -> vendor/bitshost/upmvc/src/Etc/Start.php
  -> src/Etc/packages.php
  -> BitsHost\UpmvcSaas\SaasServiceProvider
  -> vendor/bitshost/upmvc-saas-pack/src/Modules/*

```

Local app modules can be added under `src/Modules`. The kernel scans package module paths first and the app module path last, so app routes can override pack routes.

Quick Start
-----------

[](#quick-start)

```
composer install
php scripts/setup.php
mysql -u root -p my_saas_db
