Skip to content

Local Development

The Pyle monorepo contains the packages, an embedded Laravel application, and the documentation site needed to develop and verify changes locally. The embedded application is the reference host used by the complete test suite.

Requirements

Before cloning Pyle, install:

  • PHP 8.4 and Composer;
  • Node.js 24 and npm; and
  • Git.

Pest parallel execution is not reliable in native Windows shells. Use WSL when running parallel PHP suites on Windows.

Setting Up the Monorepo

Fork the Pyle repository, then clone your fork:

shell
git clone https://github.com/YOUR-USERNAME/pyle.git
cd pyle

Install the root dependencies and the dependencies used by the Framework and embedded host application:

shell
composer install
composer install --working-dir=packages/framework
composer install --working-dir=apps/laravel
npm ci --prefix packages/admin-panel
npm ci --prefix apps/laravel

You can now run the complete suite:

shell
composer test

Using a Local Client Application

Use Composer path repositories when you need to exercise Pyle inside a separate Laravel application. Clone the monorepo beside that application or in a directory reserved for local packages, then add the packages you are changing to the application's composer.json:

json
{
    "repositories": [
        {
            "type": "path",
            "url": "../pyle/packages/framework",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "path",
            "url": "../pyle/packages/admin-panel",
            "options": {
                "symlink": true
            }
        }
    ]
}

Require the package names used by your application and let Composer resolve them from the path repositories. A symlinked path repository reflects local package edits without copying files into vendor.

WARNING

Do not commit machine-specific path repositories to a shared application lock file unless the team intentionally uses the same local package layout.

Building the Documentation

Install and build the VitePress site when editing apps/docs:

shell
npm ci --prefix apps/docs
npm run docs:build --prefix apps/docs

The production build checks page rendering, navigation, and internal links.