What it is
- One front page per tenant. The admin shows a list of sections, a live preview (an iframe of im-public) and a form for the selected section. "Publish" saves the whole layout.
- Nine section types: Search (hero, locked first), Trending media, Collections, Articles, Themes, Promo, Headline and text, Trending collections, Three column. A locked Footer row opens nothing.
- Stored as one untyped JSON blob through the search API (
/api/v1/frontpage-layout). The backend keeps old layouts but has no endpoint to list or restore them. - Images are picked from editorial SDL images only. The whole media record is copied into the layout, with a copied preview URL, alt text and credit.
What's missing or broken
| Area | Today |
|---|---|
| Pages | One front page; no other pages, addresses or templates. |
| Languages | None. Every field is one string; the admin is English only. "Foto:", "Trending:" and the footer tagline are hardcoded. |
| Drafts | None. Publish is the only save; Cancel doesn't revert. No unsaved-changes guard. |
| History | Old layouts are kept but can't be seen or restored. |
| Undo | Undo and redo buttons do nothing. |
| Scheduling, preview link | Not built. |
| Sections | Can't be deleted, duplicated or hidden once added. Drag onto the preview is promised but not built. |
| Images | Copied records go stale. No focal point or crop. Alt text is copied from title or description; collection images render with empty alt. Credit is shown only on the hero, screen-reader only. Only editorial SDL images; no creative, video, albums, search feeds or upload. |
| Validation | Required fields accept empty text; button links must be absolute URLs; nothing validates the whole page before publishing, and the backend doesn't validate at all. |
| Footer | Hardcoded About/Contact, overwritten on every publish. |
| Rendering | Hero headline and text are edited but never shown. "View all" buttons link to #. Three column and Promo have no mobile layout. |
| Roles | Anyone with admin can publish; no editor role, approval or audit trail. |
What the page builder does instead
See How it works in this feature's docs.