Local development
Repository layout
Section titled “Repository layout”The repository is a monorepo holding three packages:
| Path | Package | Contents |
|---|---|---|
packages/server |
bambamboole/laravel-oidc-server |
The OIDC provider and auth engine |
packages/client |
bambamboole/laravel-oidc-client |
The relying-party client |
packages/ui |
bambamboole/laravel-oidc-ui |
The Lattice-powered auth UI |
packages/*/composer.json are the split manifests consumers install. The repository root is the
single Composer project for development: it autoloads packages/*/src directly and runs the
tooling through an Orchestra Testbench harness — there is no
full Laravel app to boot. artisan at the root is a thin shim onto vendor/bin/testbench.
Getting started
Section titled “Getting started”git clone git@github.com:bambamboole/laravel-oidc.gitcd laravel-oidccomposer installcomposer install also points core.hooksPath at .githooks/, which runs Pint, Rector and
PHPStan on commit and Pint and PHPStan on push. composer boost:refresh regenerates the
Laravel Boost guidance (CLAUDE.md, AGENTS.md) from .ai/ and boost.json.
packages/mautic is a Symfony bundle with its own install: composer install:mautic and
composer check:mautic.
The quality gates
Section titled “The quality gates”From the repository root:
composer check # Pint --test, PHPStan (sources and tests), Rector --dry-run, Pest --parallelcomposer test # the Pest suites of all three packagescomposer test:lint # Pint in --test modecomposer analyse # PHPStan, both configscomposer rector:test # Rector in dry-run modecomposer fix # Rector, then PintTests live in packages/*/tests and run from the root; each package’s TestCase registers only
its own providers, so a package suite proves the package works without the others.
Run composer check before opening a pull request — CI runs the same tools on Laravel 13.
The docs site
Section titled “The docs site”The documentation is an Astro Starlight site — content lives
under docs/, and the Node toolchain runs from the repository root:
npm installnpm run docs:dev # local dev server with hot reloadnpm run docs:build # production buildnpm run docs:preview # preview the production buildPages live under docs/content/docs/ as Markdown with Starlight frontmatter (title,
description). Match the voice and cross-linking of the existing pages when adding new ones.