# ADR-005: Dynamic Page, Section, and Widget Rendering

Status: Accepted
Date: 2026-07-03

## Context

Platform websites must be generated from configuration. Hardcoded page composition blocks tenant scalability.

## Decision

Adopt dynamic rendering engine:

- A page definition contains ordered sections.
- A section contains ordered widgets.
- WidgetHost resolves widget type through registry.
- Registry-based resolution avoids renderer edits for every new widget.
- Hero, Carousel, Header, Footer, and other blocks are widgets/layout entries from configuration.

## Consequences

Positive:

- New tenant pages created by configuration.
- Supports Builder-driven composition.

Negative:

- Requires robust schema validation.
- Requires widget compatibility and versioning discipline.

## Compliance Requirements

- Page templates must not hardcode specific widget combinations.
- Widget rendering must be data-driven from configuration contracts.
