# Modyo Channels Module

Website builder for digital experiences.

## Resource Hierarchy

```
Platform
└── Sites (websites)
    ├── Pages (3 types)
    │   ├── Widget Pages - Micro frontends
    │   ├── Content Pages - Liquid + Content API
    │   └── Origination Pages - Form workflows
    ├── Widget Definitions - Reusable components
    ├── Templates - Layouts, snippets, CSS, JS
    ├── Navigation Menus - Site navigation
    └── Global Variables - Site-wide config
```

## Key Concepts

### Sites
- Individual websites
- Support stages (like git branches)
- **Clone**: Independent copy
- **Stage**: Linked branch with `original_stage` reference

### Localization
Sites only support three locales:
- `es-es` - Spanish
- `en-en` - English
- `pt-pt` - Portuguese

**Important**: Site locale must match content locale. For other languages, use Liquid filter:
```liquid
{{ entry.title | by_lang: "fr" }}
```

### Pages
Three types:
1. **Widget Pages** - Embed micro frontends (Vue/React apps)
2. **Content Pages** - Liquid templates + Content API
3. **Origination Pages** - Form submission workflows

### Widget Definitions
- Reusable micro frontend components
- HTML + CSS + JS code
- Must be published before use in pages

### Templates
| Category | Description | CDN-Cached |
|----------|-------------|------------|
| `layout` | Page wrapper (requires `{{ content_for_layout }}`) | No |
| `custom_snippet` | Reusable Liquid components | No |
| `stylesheet` | CSS templates | Yes |
| `javascript` | JS templates | Yes |

### Navigation
- Hierarchical menu structure
- Menu items with labels, URLs, parent relationships

### Segments (from Customers realm)
- Pages can be restricted to specific user segments
- Access user segments via Liquid:
```liquid
{% if user.segments contains "premium" %}
  <!-- Premium content -->
{% endif %}
```

## Important Notes

### Home Page
- Path is `''` (empty string), NOT `/home`
- Cannot be deleted, unpublished, or archived

### Publishing
- Widget/template IDs change after publishing
- UUIDs remain stable
- Use `smart-publish` for one-step publishing

## Tools

| Tool | Purpose |
|------|---------|
| `sites-manage` | Site lifecycle + stages |
| `page-manage` | Page properties |
| `page-widget-manage` | Widget page creation |
| `page-content-manage` | Content page creation |
| `widget-definition-manage` | Widget CRUD |
| `template-manage` | Template CRUD |
| `navigation-menu-manage` | Menu management |
| `smart-publish` | One-step publishing |
