artisan-build / built-for-cloud-starter
A nodeless Laravel starter kit for Built for Cloud products.
Package info
github.com/artisan-build/built-for-cloud-starter
Type:project
pkg:composer/artisan-build/built-for-cloud-starter
Requires
- php: ^8.3
- artisan-build/built-for-cloud: ^0.10
- laravel/chisel: ^0.1.0
- laravel/framework: ^13.19
- laravel/tinker: ^3.0
- league/flysystem-aws-s3-v3: ^3.35
- livewire/flux: ^2.13.1
- livewire/livewire: ^4.1
Requires (Dev)
- barryvdh/laravel-ide-helper: ^3.6
- driftingly/rector-laravel: ^2.1
- fakerphp/faker: ^1.24
- larastan/larastan: ^3.9
- laravel/pail: ^1.2.5
- laravel/pao: ^1.1.4
- laravel/pint: ^1.27
- laravel/sail: ^1.53
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.9.3
- pestphp/pest: ^4.7
- pestphp/pest-plugin-laravel: ^4.1
- phpstan/phpstan: ^2.1
- rector/rector: ^2.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-15 06:01:48 UTC
README
artisan-build/built-for-cloud-starter is the Laravel starter kit for Built for Cloud products. It
provides the common application foundation so a new product can focus on its core problem and be
prepared for the Built for Cloud ecosystem from its first commit.
The kit is derived from artisan-build/laravel-nodeless
and retains its PHP-first constraint: there is no Node, npm, Vite, or frontend build step. Upstream
nodeless fixes are tracked through this repository's upstream git remote.
Create An App
laravel new {app} --using=artisan-build/built-for-cloud-starter
Replace {app} with the directory name for the new application. The scaffold includes app-facing
README.md, CLAUDE.md, and .solo/workflow.md documents with {{FILL}} markers. Complete those
markers before development or agent delegation so the product, non-goals, repository, and workflow
are unambiguous.
Nodeless By Design
- No Node runtime requirement.
- No npm install step.
- No Vite dev server.
- No frontend build step in local development, CI, or deployment.
- Livewire and Flux are the primary UI layer.
- Static CSS, JavaScript, and fonts are committed under
public/buildand served directly by Laravel.
This tradeoff is deliberate. Apps give up an editable Tailwind/Vite pipeline in exchange for a PHP-only workflow with fewer moving parts.
Included Foundation
- Laravel 13.19 or newer. This floor supports Laravel Cloud managed queues and must not be relaxed.
- Livewire 4 and Flux 2 (free), with Flux Pro available as an explicit per-project upgrade.
- Built for Cloud's package-owned user model, migrations, and standalone authentication foundation.
- Prebuilt Tailwind and Flux assets served from
public/build. - S3-compatible object storage support through
league/flysystem-aws-s3-v3. - Pint, Rector, PHPStan/Larastan, Pest, Composer audit, and IDE helper generation.
App Workflow
After scaffolding, prepare the application with:
composer setup
Run the local server with:
composer dev
Before a pull request, run the complete conformance gate:
composer ready
composer ready regenerates IDE helpers, applies Rector and Pint, runs PHPStan and Pest, and audits
Composer dependencies.
Static Assets
The application loads public/build/assets/app.css and public/build/assets/fonts.css directly.
There is no default source asset pipeline.
When new Tailwind classes are needed, use the opt-in standalone optimizer and commit its output:
php artisan tailwind:optimize
The command downloads a standalone Tailwind CSS binary under storage/app/tools; it does not use
Node, npm, or Vite and is not part of setup or CI.
Flux Pro
The scaffold uses free Flux and needs no Flux credentials. A project can deliberately opt in to Flux Pro after scaffolding:
php artisan flux:pro
That project must then provide its own Composer authentication and CI secret configuration.
Object Storage
Laravel Cloud refuses to deploy an application with a bucket attached unless
league/flysystem-aws-s3-v3 is installed, so the adapter is part of the starter foundation. An app
that will never use object storage may remove it with composer remove league/flysystem-aws-s3-v3.
Laravel Cloud Deployment
Artisan Build agents handling Laravel Cloud work must follow
brain/skills/laravel-cloud-deploy/SKILL.md. Start with read-only discovery. Credentials come from
the authenticated Laravel Cloud CLI; discover application and environment identifiers rather than
guessing or committing them. Keep .cloud/config.json uncommitted, and verify the application and
its attached resources after every deployment.
TODO
- P5-UI landing/package UI.
- P6 install scaffold/conformance checks.
- Credential-purpose declarations beyond the empty default.
Scaffold Proof
Live-verified on 2026-09-14 from candidate
3f46e4a44e83846a7df5cebb9fe41f69c2ab336e using a fresh mktemp -d directory. The proof used
git archive --format=zip --output="$PROOF/candidate.zip" HEAD, inspected the ZIP with
unzip -Z1, and installed it with composer create-project --no-interaction through a local
Composer package repository as synthetic version dev-proof.
- The 413,878-byte archive excluded
.env,vendor/,database/database.sqlite, rootREADME.md, rootCLAUDE.md, root.solo/, and the three kit-maintenance tests. It retained the app-valid Feature, Integration, and Unit example tests, all app-facing stubs, and all three skill trees. - Create-project installed 156 packages from scratch, discovered
ArtisanBuild\BuiltForCloud\BuiltForCloudServiceProvider, created a new SQLite database, and ran all 33 application and package migrations. Every post-create hook completed successfully. composer show artisan-build/built-for-cloud --format=jsonreported released versionv0.9.2. A bootstrapped application assertion confirmed the package provider was loaded and theusersauth provider usedArtisanBuild\BuiltForCloud\User;php artisan migrate:statusreported every migration asRanin batch 1.- Installed inventory:
README.md,CLAUDE.md,.solo/workflow.md, and eachSKILL.mdplus helper under.claude/skills/{bfc-app-manifest,bfc-logo,bfc-readme}. All three helpers were executable;stubs/,.cloud/config.json, Cloud identifier assignments, and kit-only document content were absent. php .claude/skills/bfc-app-manifest/scripts/manifest.php --check --jsonreturnedok: trueandstatus: unconfiguredfor exactly the five null manifest values, six false UI flags, and emptycredential_purposes. Focused regression coverage also rejected a partial manifest.- The generated app's
composer readypassed: IDE helpers generated, Rector and Pint passed, PHPStan reported zero errors, Pest passed 5 tests with 22 assertions, and Composer reported no security advisories. - Before the live proof, focused starter checks passed: manifest skills, 12 tests / 64 assertions;
archive boundary, 4 tests / 33 assertions; Pint passed both edited PHP files. Direct file-scoped
PHPStan was not applicable to the excluded archive test and separately exposed the pre-existing
untyped
finish(array $result)signature in the standalone skill script. - After evidence capture, the resolved bounded temp tree containing the generated app and ZIP was
deleted; nonexistence was verified. The rejected earlier
composer archivetree and failed clean proof tree were also deleted before this successful run.
Kit Maintenance
Changes to this repository are inherited by every subsequently scaffolded app. Keep the template free of machine-specific paths, personal configuration, secrets, and frontend build tooling.
The kit's root README.md, CLAUDE.md, and .solo/ describe this repository and are excluded from
Composer archives. App-facing replacements live in stubs/ and are installed without overwriting
existing destination files when Composer creates a project.
This repository lives at artisan-build/built-for-cloud-starter.