# marketing (/product/modules/marketing)



`marketing` is the public surface every serving tenant has, with or without commerce: a home page built from configurable sections, a services listing, and an enquiry form. It also owns the header and footer that wrap the storefront's pages.

## Routes

| Route              | Content                                          |
| ------------------ | ------------------------------------------------ |
| `/`                | The home page: the configured sections in order. |
| `/services`        | The service listing.                             |
| `/services/[slug]` | A service's detail.                              |
| `/enquire`         | The contact form, optionally about a product.    |

## Slots and sections

A **slot** is a named insertion point on a route holding an ordered list of section keys. The home page is one slot; a region beneath the service listing is another, empty by default. A tenant reorders, removes or adds sections by overriding a slot in its settings; a slot's contents are always section keys, never a generated file. The featured section renders the storefront's curated shelf and disappears without the `storefront` module, so it costs a tenant without commerce nothing.

The header is one row at every width. The main menu measures its own width against the space it has and folds into a sheet when the sections no longer fit, so a tenant with four short sections keeps the bar where one with eight long ones does not. The footer's every part hides when its content is absent, and the whole footer returns nothing when none has any.

## Copy

Three layers, each winning over the one before: the packaged copy, brand-neutral and blank where a tenant must speak for itself; an app-local layer for a pinned customer app; and the tenant's own overrides. A self-serve tenant never arrives blank: provisioning seeds the hero, about, services, contact, footer and meta copy from the store name and its industry, in every platform language.

## Settings scope

The `marketing` application-wide row: the services parent collection, the three call-to-action targets, and the slot overrides.

## Chat tools

`manage_structure`, which rewrites one slot's section list. The assistant reads the current slots and sends them back with one changed, so a shallow merge drops nothing.

## Permissions

None of its own; the public tree is anonymous.

## Switched off

Never. Every project links it at provisioning, and the navigation and the public tree read it.
