Skip to main content

Pages

What are Pages?​

A page is a route or entry point in a mobile app that links a slug (URL path) to an optional asset (HTML). The mobile app fetches pages to build navigation (e.g. menus) and to load a specific page by slug, including its linked asset.

Pages are used for:

  • In-app navigation – List of pages to build menus or navigation
  • Deep linking – Slugs map to routes (e.g. com.app://page/about-us)
  • Asset display – A page can link to an asset (HTML) that the app renders when that page is opened

Core Properties​

PropertyDescription
idUnique identifier (Firebase push key)
nameDisplay title (internal reference)
slugURL path identifier (e.g. about-us, shop) – must be unique
contentIdOptional – ID of linked asset (HTML) to display
publishedWhether the page is live
archivedSoft-archive flag
deletedSoft-delete flag

Relationship to Assets​

  • An asset is HTML stored in the Visual Experience Engine (via the Assets feature).
  • A page can optionally link to one asset via contentId.
  • When the mobile app fetches a page by slug, the API returns:
    • Page metadata (id, name, slug, contentId)
    • The linked asset (id, name, slug, code, status) if contentId is set and the asset is published
  • The app can then render the HTML on that page.

API: Fetching Pages​

Get All Pages​

GET /remote-pages?key=YOUR_API_KEY

Returns a list of published, non-deleted, non-archived pages, sorted by creation date (menu order).

Response:

{
"data": [
{
"id": "abc123",
"name": "About Us",
"slug": "about-us",
"contentId": "xyz789",
"createdAt": 1700000000000,
"updatedAt": 1700000000000
}
]
}

Get a Single Page (by slug)​

GET /remote-pages?key=YOUR_API_KEY&slug=about-us

Or use the singular endpoint:

GET /remote-page?key=YOUR_API_KEY&slug=about-us

Response (with linked asset):

{
"id": "abc123",
"name": "About Us",
"slug": "about-us",
"contentId": "xyz789",
"createdAt": 1700000000000,
"updatedAt": 1700000000000,
"content": {
"id": "xyz789",
"name": "About Us Content",
"slug": "about-content",
"code": "<div>...</div>",
"status": "published"
}
}

Visibility Rules​

A page is returned by the API only when:

  1. published – published === true
  2. Not deleted – deleted === false
  3. Not archived – archived === false

If a page has a linked asset, that asset must also be published and (if scheduled) within its schedule dates.


How the Mobile App Uses Pages​

  1. Navigation / menu – Fetch all pages and use them to build a menu or navigation list.
  2. Deep link – Use the slug in deep links (e.g. com.app://page/about-us) to open a specific page.
  3. Asset rendering – When opening a page, request it by slug; if it has content, render the HTML.

Pages vs. Other Concepts​

ConceptPurposePlatform
PagesRoutes + optional asset; in-app navigationMobile app
AssetsReusable HTML blocksBoth (fetched directly or via Page)
SpecificationsVersioned JSON config for layoutMobile app
Scheduled ContentScheduled promotional contentBoth

Workflow Summary​

  1. Create an asset in the Assets section (HTML).
  2. Create a Page in the Pages section: set title, slug, and link to an asset.
  3. Publish the page (and the linked asset).
  4. The mobile app fetches pages to build navigation.
  5. When the user opens a page (e.g. via menu or deep link), the app fetches it by slug.
  6. The app renders the linked asset HTML when present.

Key Takeaway​

A page is a route/entry point identified by a slug. It can optionally link to an asset (HTML). The mobile app uses pages for navigation and for loading and displaying linked assets when a page is opened.