Installation
Install Streams in a new or existing Laravel app: requirements, the version matrix, Composer constraints, and publishing config.
Server requirements
Streams requires a standard Laravel-compatible environment with PHP 8.2 or newer. Core supports Laravel 10, 11, and 12, and this site (streams.dev) runs Laravel 12. The starter project and the streams/testing harness are still Laravel 10 only, and the SDK's MCP server needs Laravel 11.45+ or 12.41+. The version matrix below has the details.
For image handling, install GD or the Imagick PHP extension. See Images and Core images.
Version matrix
| Package | Laravel 10 | Laravel 11 | Laravel 12 | Notes |
|---|---|---|---|---|
streams/core |
Yes | Yes | Yes | Declares ^10|^11|^12. Its CI runs on Laravel 10, through streams/testing. |
streams/ui |
Yes | Yes | Yes | Follows Core. Requires Livewire 3. |
streams/api |
Yes | Yes | Yes | Follows Core. |
streams/sdk generators and streams:validate |
Yes | Yes | Yes | Its own test suite runs on Laravel 12. |
streams/sdk MCP server |
No | 11.45+ | 12.41+ | Needs laravel/mcp ^1.0. On Laravel 10 it is skipped; use streams:list --json and streams:validate --json. |
streams/testing |
Yes | Not yet | Not yet | Requires orchestra/testbench ^8.36 (Laravel 10 only). Being widened to ^8.36|^9.15|^10.8 for Laravel 11 and 12. |
streams/streams starter |
Yes | No | No | Pins laravel/framework ^10.0. |
| streams.dev (this site) | No | No | Yes | Runs Laravel 12 on PHP ^8.2, with Core (rc/prep), UI, and the SDK as a dev dependency. |
Every PHP package needs PHP 8.2 or newer: Core, API, and SDK declare php: ^8.2, and UI and Testing require Core. Until streams/testing supports Laravel 11 and 12, the package test suites for Core, UI, and API run on Laravel 10 only, so treat 11 and 12 as supported but not yet verified in CI. See Versions and support for install constraints and branches.
New projects
The fastest path is the official Streams starter:
composer create-project streams/streams:1.0.x-dev my-app
cd my-app
php artisan serve
The starter (laravel-streams/streams) is a Laravel 10 application that requires Core, UI, and API. It has no tagged release yet, so the version is the 1.0 development branch.
This repository (streams.dev)
streams.dev is not the generic starter — it is the documentation site. Clone it to work on docs or reference patterns:
git clone [email protected]:laravel-streams/streams.dev.git
cd streams.dev
composer install
npm install && npm run dev
php artisan serve
Production dependencies in this repo:
Dev dependency:
streams/api is not required here. Add it when you need REST endpoints (see API installation).
See This project and Local development.
Existing Laravel projects
Add only the packages you need:
composer require streams/core:2.0.x-dev
composer require streams/core:2.0.x-dev streams/ui:1.0.x-dev
composer require streams/core:2.0.x-dev streams/api:1.0.x-dev
Core is the only required package. UI and API are optional layers.
Use the explicit x-dev constraints. None of these packages has a stable 2.x (Core) or 1.x (UI, API) tag yet, and a bare composer require streams/core installs the old Core 1.10.4. Alternatively, set "minimum-stability": "dev" and "prefer-stable": true in your composer.json. See Versions and support.
Publish and configure
Publishing is optional; Core works with its defaults. To change the config, publish it from Core's provider:
php artisan vendor:publish --provider="Streams\Core\StreamsServiceProvider" --tag=config
Core registers three tags: config (config/streams/core.php), streams (Core's own stream definitions, copied into streams/), and public (Core's public assets, into public/vendor/streams/core). UI and API also use the config tag, so pass --provider to publish only one package's file. See Core installation and Configuration.
Team workflow
Commit streams/ and streams/data/ to version control so stream definitions and filebase content stay in sync across developers and environments. Keep secrets in .env only.
Local package development
To contribute to Streams packages, use Composer path repositories pointing at local clones (see Addons and Project structure).
Updating
Update individual packages:
composer update streams/core --with-dependencies
composer update streams/ui --with-dependencies
composer update streams/api --with-dependencies
Or update the full project:
composer update