Media, tokens, components, and localization
Engage project resources keep authored experiences consistent without hardcoding product data in a visual editor.

Media library
Upload and manage images and other supported assets once, then reference the published asset from content. Storage may be local in development or S3-compatible in production. Processing status and safe metadata let the editor avoid publishing unavailable assets.
Use HTTPS assets with appropriate dimensions and file sizes. Every experience must retain a graceful fallback when a remote image cannot load.
Design tokens
Tokens encode stable design roles rather than one-off values: colors, spacing, typography, radii, and other supported values. Draft and publish token revisions so runtime documents depend on an immutable version.
Prefer semantic names such as color.surface.brand over visual names such as purple_500 when the role is what content authors need.
Reusable in-app components
Components package a DivKit definition, inputs, defaults, visibility, dependency metadata, version, and validation report. Experiences compose published component versions instead of duplicating complex JSON.
Publishing validates the component graph and blocks missing, incompatible, or cyclic dependencies. Updating a component creates a version; it does not silently rewrite already-published experiences.

Localization catalogs
Catalogs separate copy from layout. Define a default locale, optional fallback, and localized values. Publishing an experience compiles the selected catalog version and produces locale-specific immutable content variants.
Test long translations, plural/number/date formatting owned by the supported binding system, right-to-left layout where applicable, and missing-value fallback.


Visual editor contract
The editor should load dynamic assets, tokens, components, and localization through domain/repository interfaces. Presentation components may contain fixed editor vocabulary but must not hardcode backend-shaped records or autocomplete data.
Publication order
- Upload/process media.
- Publish required design tokens and localization.
- Publish reusable components and validate dependencies.
- Author and preflight experiences/templates.
- Publish immutable runtime documents.