phpsquad/domain-maker
Domain Maker is a Laravel package for scaffolding domain-driven design structures. Use Artisan commands to generate domains, actions, DTOs, models, and related classes, keeping business logic organized and your application easier to maintain.
Architecture fit. Domain Maker is a dev-time scaffolding package, not a runtime library. It registers artisan commands that generate directory structures and boilerplate aligned to a domain-oriented layout (domain/application/infrastructure style). It codifies a convention rather than enforcing one — the generated files are ordinary PHP that the application owns outright. That makes architectural risk low at the framework level but shifts responsibility onto the generated artifacts and the team's discipline. It fits organizations already committed to modular/DDD-flavored Laravel; it is a poor fit for teams on vanilla MVC who would end up with a half-migrated hybrid.
Integration feasibility. Installable via Composer with Laravel package discovery; standard require-dev footprint. The binding constraint is the version matrix: the last release is December 2022 (Laravel 9/10 era), and the repository is archived, so no compatibility patches will arrive for Laravel 11/12 or newer PHP. Integration effort is technically trivial; the real work is a compatibility spike and a decision about ownership after abandonment.
Technical risk. Low production and security risk — no runtime surface, dev dependency only. High lifecycle risk: archived repo, 87 stars, effectively single-maintainer history, no CVE process, no roadmap. Risk concentrates in upgrade friction (composer constraints can block a framework upgrade) and in stub drift (generated code diverging from current Laravel idioms). There is also a "DDD in a box" risk: the tool produces folders, not bounded-context discipline, and can create false confidence that architecture has been addressed.
Key questions.
Stack fit. Laravel + Composer + artisan. Install as require-dev so it never reaches production. Natural fit for teams already organizing by module or domain; requires an explicit convention doc to be useful at all, since the tool ships defaults, not house standards.
Migration path. Do not retrofit existing app/ code wholesale — that produces exactly the hybrid structure the tool is meant to avoid. Pilot on one new bounded context, hand-review the generated output line by line against house standards, and only then decide whether to adopt, fork, or reject. Let new domains grow greenfield; back-fill legacy code only where there is a clear owner and a reason.
Compatibility. Validate composer constraints in a throwaway branch against our full Laravel/PHP matrix before committing. Given the archive status, plan to pin an exact version and treat it as frozen. If constraints conflict with our target framework version, vendor a fork under an internal namespace rather than fighting the resolver or holding the framework back.
Sequencing.
make: stubs.Maintenance. Archived means we own it. Either budget for a fork (stub upkeep, tagging, CI) or accept "frozen forever" and cap how much of the codebase depends on it. Realistically a few hours per Laravel major if forked; near-zero if pinned and untouched — until it breaks, at which point the cost is a forced migration rather than a patch.
Support. Community-only and effectively nonexistent: no vendor SLA, no security advisories, no upstream fixes. Internal ownership must be assigned to a named platform or chapter lead, not left implicit.
Scaling. No runtime scaling concerns — this is dev-time only. The scaling constraint is organizational: without review gates, generated structures proliferate inconsistently across teams, and N teams × M domains diverge quickly. Pair adoption with fitness checks (lint rules on folder structure, PR templates, architecture review for new domains) or the tool accelerates entropy rather than reducing it.
Failure modes.
make commands, so generated code and framework-generated code stop looking alike.Ramp-up. Low mechanical ramp — artisan commands are familiar territory for any Laravel developer. Moderate conceptual ramp: layering, bounded contexts, and where business logic belongs are the hard parts, and the tool does not teach them. Budget roughly a half-day workshop plus a reference domain to point at. Documentation in an archived repo is likely thin and version-stale; assume we write our own onboarding material regardless of which path we choose.
How can I help you explore Laravel packages today?