High-Level Overview
Exowpee follows a monorepo architecture where the core Laravel application lives alongside domain-specific packages in thepackages/ directory.
The app/ Directory
The app/ directory is minimal — it only contains application-level middleware and service providers. All business logic lives in packages/.
The
app/ directory does not contain Events, Models, Services, Traits, Helpers, Casts, or Console directories. All domain logic, helpers, traits, and models live inside the packages/ directory.The packages/ Directory
Each package is a self-contained Laravel package with its own models, controllers, services, migrations, routes, and policies.
Standard package structure
Every package follows this layout:Package inventory
The routes/ Directory
Most API routes are defined inside packages at
packages/{name}/src/Http/routes.php, not in routes/api.php. The main routes/api.php only contains routes that don’t belong to a specific package.The database/ Directory
packages/{name}/database/migrations/.