orchestra/canvas
Orchestra Canvas brings Laravel’s artisan make:* generators to apps and packages. Generate controllers, models, migrations, jobs, mail, middleware, tests and more, with customizable namespaces and stubs—usable inside or outside a full Laravel install.
canvas.yaml presets, reducing technical debt from inconsistent scaffolding across teams or projects.make:job, make:provider) without requiring a full Laravel setup. Supports package presets with configurable paths and namespaces.App\Modules\Auth\Models\User) via canvas.yaml, ensuring uniformity across microservices or monoliths.make:command with package-specific namespaces like Vendor\Package\Console).make:test) with consistent naming and structure, improving test coverage velocity.Adopt if:
Avoid if:
Look elsewhere if:
For Executives: *"Canvas is a zero-cost, high-impact tool that cuts boilerplate generation time by 30–50% for Laravel projects. By standardizing how we create controllers, models, and migrations, it reduces onboarding friction, improves code consistency, and accelerates feature delivery. For example:
composer require away—that directly improves team velocity without requiring new hires or complex tooling."*For Engineering/Tech Leads:
*"Canvas replicates Laravel’s make: commands but adds critical flexibility for packages and custom stubs. Here’s why it’s a no-brainer for us:
make:job, make:provider) without needing a full Laravel install. This is a game-changer for our reusable components like auth-service or payment-gateway.App\Modules\Auth\Models instead of App\Models) via canvas.yaml. No more manual edits to fix namespaces or add traits.composer require orchestra/canvas, and you’re done. The Orchestra\Canvas\LaravelServiceProvider even overrides Artisan commands automatically.For Developers:
*"Stop wasting time running make:controller and then manually fixing namespaces, adding traits, or copying boilerplate. Canvas does it all in one command—and it works everywhere, even outside Laravel.
Here’s how it’ll change your workflow:
canvas make:model Post -mcr
canvas preset package --namespace="Vendor\Package"
canvas make:command SendEmail
canvas.yaml enforces our team’s standards.make:enum and make:interface that Laravel’s Artisan doesn’t.
Try it: composer require --dev orchestra/canvas and replace your first make: command with canvas make:. You’ll never go back."*For QA/Testing Teams: *"Canvas can automate test scaffolding to improve test coverage velocity. For example:
canvas make:test UserTest
How can I help you explore Laravel packages today?