36 lines
951 B
Markdown
36 lines
951 B
Markdown
# 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.
|