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. publishedpublished === true
  2. Not deleteddeleted === false
  3. Not archivedarchived === 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.