High-Level Overview

Exowpee follows a monorepo architecture where the core Laravel application lives alongside domain-specific packages in the packages/ directory.
The folders exowpee-core/ and layers/ are legacy code from a previous architecture. All active business logic has been moved to packages/. Do not modify files in these deprecated directories.

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

Package-specific migrations live in packages/{name}/database/migrations/.

The config/ Directory

Key files at root

What’s deprecated