# Project layout

A project is the folder that holds `app.jadpo`. Its layout is fixed, so you
never decide where a file goes: its path follows from two facts, the
business area it belongs to and what it declares.

The project's root holds a fixed set of files and folders. All application
code lives in business areas, called domains, in folders under `domains/`,
one level deep. Every domain holds the same fixed folders, each named after
the kind of declaration it holds: `entities/`, `actions/`, `queries/` and so
on.

Each file holds one primary declaration, named after the file and written
last in it, below everything it needs. Nothing else goes in the file unless
the primary declaration uses it. [Decided layout](decided-layout.md) gives
the whole layout, and [Files and names](files-and-names.md) the rules for
each file.

A single file, or a folder with no `app.jadpo` above it, is checked as
loose files: one implicit domain, with the layout rules off.
