Skip to main content

Content Management System (CMS)

Manage marketing website content across all Olympus Cloud sites with the headless CMS.

Overview

The CMS provides centralized content management for all marketing sites:

SiteDomainPurpose
Restaurant Revolutionrestaurantrevolution.aiCustomer-facing marketing
Olympus Cloudolympuscloud.aiPlatform marketing
Creator Revolutioncreatorsrevolution.aiCreator platform marketing
NebusAInebusai.comCorporate site

Page Management

Viewing Pages

  1. Navigate to Admin > CMS > Pages
  2. Filter by site, status, or search
  3. View page list with status indicators

Page Statuses

StatusDescriptionIcon
DraftWork in progress📝
ScheduledPending publish date
PublishedLive on site
ArchivedNo longer active📦

Creating a Page

  1. Click + New Page
  2. Select the target site
  3. Configure page details:
    • Title: Page heading
    • Slug: URL path (auto-generated from title)
    • Description: Brief page summary
  4. Add sections (see below)
  5. Configure SEO metadata
  6. Save as draft or publish

Page Sections

Pages are built from modular sections:

Section TypeUse Case
HeroMain banner with CTA
FeaturesFeature grid with icons
BenefitsValue proposition list
TestimonialsCustomer quotes
FAQAccordion Q&A
CTACall-to-action block
PricingPricing tiers
TeamTeam member profiles
ContentRich text content
GalleryImage gallery
VideoEmbedded video
FormContact/signup form
CustomCustom HTML/components

Adding Sections

  1. In page editor, click + Add Section
  2. Select section type
  3. Configure section settings:
    • Title and subtitle
    • Content or items
    • Visibility toggle
    • Display order
  4. Drag to reorder sections

SEO Configuration

Each page includes SEO metadata:

┌─────────────────────────────────────────────────────────────────┐
│ SEO SETTINGS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Meta Title: [Primary keyword focused title ] │
│ Meta Description: [Compelling 150-160 char description ] │
│ Keywords: [keyword1, keyword2, keyword3 ] │
│ │
│ Open Graph: │
│ ───────────────────────────────────────────────────────────── │
│ OG Title: [Social sharing title ] │
│ OG Description: [Social sharing description ] │
│ OG Image: [Upload or select from media ] │
│ │
│ Advanced: │
│ ───────────────────────────────────────────────────────────── │
│ Canonical URL: [https://... ] │
│ Robots: [index, follow ▼ ] │
│ │
└─────────────────────────────────────────────────────────────────┘

Publishing Workflow

Publish Immediately

  1. From page editor, click Publish
  2. Confirm publication
  3. Page goes live immediately
  4. Webhook notifications sent

Scheduled Publishing

Schedule pages for future publication:

  1. Click Schedule instead of Publish
  2. Select date and time
  3. Page status changes to "Scheduled"
  4. Auto-publishes at specified time

Content Approval Workflow

For teams requiring review before publishing:

  1. Request Approval

    • Author clicks Request Approval
    • Adds notes for reviewer
    • Status changes to "Pending Approval"
  2. Review Content

    • Reviewer sees pending items in queue
    • Reviews content and changes
    • Approves or rejects with notes
  3. Publish or Revise

    • Approved: Author can publish
    • Rejected: Author revises and resubmits

Approval Queue

┌─────────────────────────────────────────────────────────────────┐
│ PENDING APPROVALS 3 pending │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 📄 Homepage Redesign │
│ Site: Restaurant Revolution │
│ Requested by: marketing@nebusai.com │
│ Requested: 2 hours ago │
│ [Review] [Approve] [Reject] │
│ │
│ 📄 Pricing Page Update │
│ Site: Olympus Cloud │
│ Requested by: product@nebusai.com │
│ Requested: 1 day ago │
│ [Review] [Approve] [Reject] │
│ │
└─────────────────────────────────────────────────────────────────┘

Content Versioning

Version History

Every page change is versioned:

  1. Go to page > Version History
  2. See all previous versions with:
    • Version number
    • Timestamp
    • Author
    • Change reason

Comparing Versions

  1. Select two versions to compare
  2. View side-by-side diff
  3. See added, removed, changed content

Rollback

To restore a previous version:

  1. Find the version to restore
  2. Click Rollback to this version
  3. Confirm action
  4. Page content reverts to selected version
  5. New version created for audit trail

Media Management

Media Library

Centralized media asset management:

  1. Navigate to CMS > Media
  2. View all uploaded assets
  3. Filter by site, type, or tags

Supported Formats

TypeFormatsMax Size
ImagesJPG, PNG, WebP, GIF, SVG10 MB
VideosMP4, WebM100 MB
DocumentsPDF25 MB
AudioMP3, WAV50 MB

Uploading Media

  1. Click + Upload
  2. Drag files or click to browse
  3. Add metadata:
    • Alt text (for accessibility)
    • Caption
    • Tags
  4. Upload to R2 storage

Media Details

Each asset includes:

  • File name and type
  • Dimensions (images/video)
  • Size
  • Public URL
  • Alt text and caption
  • Tags for organization
  • Usage information (where used)

Using Media in Pages

  1. In page editor, click image/media placeholder
  2. Select from library or Upload new
  3. Choose asset
  4. Configure display settings

Managing Menus

  1. Navigate to CMS > Menus
  2. Select site and menu location

Menu Locations

LocationDescription
headerMain navigation
footerFooter links
sidebarSidebar navigation
mobileMobile-specific menu

Creating Menu Items

  1. Click + Add Item
  2. Configure:
    • Label (display text)
    • Link type:
      • Internal page (select from pages)
      • External URL
    • Target: Same tab or new tab
  3. Drag to reorder
  4. Nest items for dropdowns

Menu Structure

Header Menu
├── Products
│ ├── Restaurant POS
│ ├── Voice AI
│ └── Online Ordering
├── Pricing
├── About
└── Contact

URL Redirects

Managing Redirects

Handle URL changes and migrations:

  1. Navigate to CMS > Redirects
  2. View existing redirects
  3. Click + Add Redirect

Redirect Configuration

FieldDescription
Source PathOriginal URL path
Target URLDestination URL
Type301 (permanent) or 302 (temporary)
RegexEnable pattern matching
Preserve QueryKeep query parameters
PriorityHigher matches first

Common Redirect Patterns

# Simple page redirect
/old-page → /new-page (301)

# Regex pattern (blog restructure)
/blog/(\d+)/(.+) → /articles/$2 (301, regex)

# External redirect
/partner-link → https://partner.com (302)

Webhooks

Webhook Events

Get notified when content changes:

EventTrigger
page.createdNew page created
page.updatedPage content changed
page.publishedPage published
page.unpublishedPage unpublished
page.deletedPage deleted
media.uploadedNew media uploaded
media.deletedMedia deleted
menu.updatedMenu changed

Configuring Webhooks

  1. Navigate to CMS > Webhooks
  2. Click + Add Webhook
  3. Configure:
    • Endpoint URL
    • Secret (for HMAC signing)
    • Events to subscribe to
  4. Enable webhook

Webhook Payload

{
"event": "page.published",
"site": "restaurant-revolution",
"timestamp": "2026-01-19T15:30:00Z",
"data": {
"page_id": "uuid-here",
"slug": "/features",
"title": "Features",
"published_by": "admin@nebusai.com"
}
}

Webhook Security

Verify webhook signatures:

const crypto = require('crypto');

function verifyWebhook(payload: string, signature: string, secret: string): boolean {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}

Site Settings

Configuring Site Settings

Each site has customizable settings:

  1. Navigate to CMS > Settings
  2. Select site
  3. Configure:
SettingDescription
Display NameSite title
TaglineSite subtitle
LogoHeader logo
FaviconBrowser tab icon
ColorsPrimary/secondary colors
Analytics IDGoogle Analytics ID
Social LinksSocial media URLs
Contact EmailContact form destination
Footer TextCopyright/legal text

Custom Scripts & Styles

Add external resources:

  1. Go to Advanced Settings
  2. Add custom script URLs
  3. Add custom stylesheet URLs
  4. Scripts load on all pages

Reusable Components

Component Library

Create reusable content blocks:

  1. Navigate to CMS > Components
  2. View component library
  3. Create or edit components

Creating Components

  1. Click + New Component
  2. Define component schema:
    • Name and label
    • Field definitions
    • Default values
  3. Set scope:
    • Site-specific
    • Shared across all sites
  4. Save component

Using Components in Pages

  1. In page editor, add Component section
  2. Select component from library
  3. Fill in component fields
  4. Component renders with values

Permissions

CMS Roles

RoleCapabilities
Content EditorCreate/edit pages, upload media
Content PublisherEditor + publish pages
Content AdminPublisher + menus, redirects, settings
CMS AdminFull CMS access including webhooks

Permission Matrix

ActionEditorPublisherAdmin
View pages
Create/edit pages
Publish pages
Upload media
Manage menus
Manage redirects
Configure webhooks
Site settings

Best Practices

Content Organization

  • Use consistent naming conventions for pages
  • Organize media with descriptive tags
  • Keep menu structures shallow (max 2 levels)
  • Archive old content rather than deleting

SEO Guidelines

  • Write unique meta titles (50-60 chars)
  • Write compelling meta descriptions (150-160 chars)
  • Use descriptive alt text for all images
  • Set up redirects when changing URLs

Publishing Workflow

  • Always preview before publishing
  • Use scheduled publishing for coordinated launches
  • Enable approval workflow for team content
  • Test webhooks with a staging endpoint