# Building (/product/building)



Three guides cover everything a new module needs. Read them in order the first time; after that each stands alone.

- [Composition](/product/building/composition) — Where a file lives, what composes what, and where the boundaries fall between a module, the shared components and the stateless helpers.

- [Data](/product/building/data) — A table in the per-tenant schema: naming it, picking its tier, writing its policies, and the query and action layer over it.

- [UI](/product/building/ui) — A component: which folder it belongs in, how a form and a grid compose, how it is styled and translated, and the house style.

## The shape of a module

A **module** is one folder under the shared web package's `core/`, one or more schema files in the db package, one message namespace, one settings scope, and one row in the platform's module catalog. The folder root is the logic, flat, named by suffix; `ui/` holds what renders; `hooks/` holds what other modules consume. Its barrel is the public surface, and apps reach it only through sub-paths the package declares.

Everything below is the platform's own house style. It is enforced where a script can enforce it, and the build runs those scripts.
