# Landing Page (cf.cplace.landingPage)

## Overview

The Landing Page app provides the ability to create a self-configured start page for users. Administrators can make the landing page the start page for all users. The basic display form of the landing page is controlled via "themes" - several themes are available, including tiles, lists, and processes.

**Key Use Cases:**
- Creating customized start pages with visual navigation
- Organizing content into themed categories using tabs
- Providing quick access links to frequently used pages
- Building user-friendly portal experiences

## Dependencies

| App | Qualified Name | Auto-Installed |
|-----|----------------|----------------|
| cplace Basis | `cf.cplace.platform` | Yes (always present) |

The Landing Page app has no additional dependencies beyond the base platform.

## Types Provided

### cf.cplace.landingPage.tab

A Tab organizes Level 0 Tiles into logical groups displayed as tabs on the landing page.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Icon | `cf.cplace.landingPage.icon` | String | No | Icon to display on the tab |
| Order | `cf.cplace.landingPage.order` | Number | No | Sort order for tab display |

### cf.cplace.landingPage.level0

Level 0 Tiles are the top-level navigation elements displayed as large tiles on the landing page. Each tile links to a target page or URL.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Description | `cf.cplace.landingPage.descriptionLocalized` | Localized String | No | Localized description text displayed on the tile |
| Thumbnail | `cf.cplace.landingPage.thumbnail` | File Reference | Yes | Image displayed on the tile |
| Color | `cf.cplace.landingPage.color` | String | No | Background color for the tile |
| Order | `cf.cplace.landingPage.order` | Number | No | Sort order for tile display |
| Permission Page | `cf.cplace.landingPage.pageReference` | Reference | No | Page used to determine visibility based on permissions |
| Target Type | `cf.cplace.landingPage.urlReferenceModal` | Enumeration | No | Defines how the target opens (same window, modal, etc.) |
| Alternative Target URL | `cf.cplace.landingPage.urlReference` | String (URL) | No | External URL to navigate to instead of a cplace page |
| Tab | `cf.cplace.landingPage.tabReference` | Reference (Tab) | Yes | Tab(s) where this tile should appear (multi-select) |

### cf.cplace.landingPage.level1

Level 1 Tiles are sub-navigation elements displayed within Level 0 Tiles, providing a second layer of navigation.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Assigned Level 0 Tile | `cf.cplace.landingPage.level0reference` | Reference (Level 0 Tile) | No | Parent tile(s) this sub-tile belongs to (multi-select) |
| Target and Permission Page | `cf.cplace.landingPage.pageReference` | Reference | No | Target page (also used for permission checking) |
| Alternative Target URL | `cf.cplace.landingPage.urlReference` | String (URL) | No | External URL to navigate to |
| Target Type | `cf.cplace.landingPage.urlReferenceModal` | Enumeration | No | Defines how the target opens |
| Order | `cf.cplace.landingPage.order` | Number | No | Sort order for display |
| Width | `cf.cplace.landingPage.width` | Number | Yes | Display width of the tile |
| Divider Tile | `cf.cplace.landingPage.isDividerTile` | Boolean | Yes | Whether this is a visual divider (not a link) |

### cf.cplace.landingPage.quicklink

Quick Links provide fast access to frequently used pages or URLs, displayed prominently on the landing page.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Assigned Level 0 Tile | `cf.cplace.landingPage.level0reference` | Reference (Level 0 Tile) | No | Parent tile(s) this quick link appears under (multi-select) |
| Icon | `cf.cplace.landingPage.icon` | String | No | Icon displayed next to the link |
| Order | `cf.cplace.landingPage.order` | Number | No | Sort order for display |
| Target and Permission Page | `cf.cplace.landingPage.pageReference` | Reference | No | Target page (also used for permission checking) |
| Alternative Target URL | `cf.cplace.landingPage.urlReference` | String (URL) | No | External URL to navigate to |
| Target Type | `cf.cplace.landingPage.urlReferenceModal` | Enumeration | No | Defines how the target opens |

## Widgets Provided

The Landing Page app does **not** provide any widgets. The landing page itself is rendered through a dedicated application configuration rather than standard widgets.

**Note:** There is a related but separate app called "Landing Page from a cplace Page" (`cf.cplace.landingPageFromPage`) that provides widgets for creating landing page-like experiences using standard cplace pages:
- Simple List Overview
- Quick Overview
- Welcome Message

These are **not** part of the Landing Page app and require separate installation.

## Type Hierarchy

```
Tab
 └── Level 0 Tile (via tabReference)
      ├── Level 1 Tile (via level0reference)
      └── Quick Link (via level0reference)
```

## Usage Notes

### When to Use This App

- **Portal-style entry points**: When you need a visual, tile-based navigation interface
- **Multi-tenant workspaces**: Different tabs can show different content to different user groups
- **Simplified navigation**: When standard workspace navigation is too complex for end users
- **Branded experiences**: Tiles with images and colors create a polished, professional look

### Configuration Notes

1. **Permission-based visibility**: Tiles and links inherit visibility from the referenced Permission Page - if a user cannot see the permission page, they cannot see the tile
2. **Themes**: The landing page display is controlled via themes configured in the app settings, not via widget layouts
3. **Administrator setup**: Administrators can configure the landing page as the default start page for the workspace

### Alternative: Landing Page from a cplace Page

If you need more flexibility or want to integrate landing page-like features into regular cplace pages, consider the `cf.cplace.landingPageFromPage` app instead. It provides widgets that can be placed on any page layout.

## Related Apps

| App | Qualified Name | Relationship |
|-----|----------------|--------------|
| Landing Page from a cplace Page | `cf.cplace.landingPageFromPage` | Alternative approach using widgets |
| Tile Navigation | `cf.cplace.navigationTileWidget` | Provides tile navigation widget for regular pages |

## Investigation Details

- **Investigation Date**: 2026-02-02
- **Workspace Used**: `[App Investigation] cf.cplace.landingPage`
- **Workspace ID**: `7us1adiup9ew4oze29bvy2i2x`
