Initial Configuration

Complete the initial setup of Serverless CMS by logging in, creating your first site, and testing the workflow.

First Login

Access Admin Tool

Navigate to your Admin Tool URL:

https://admin.example.com

You should see the Serverless CMS login page.

Initial Admin User

The deployment automatically creates an admin user with the email specified in components/auth-service.json:

{
  "users": [
    { "email": "george.taylor@taylor-made-software.co.uk", "groups": ["admin"] }
  ]
}

Get Temporary Password

Cognito sends a temporary password via email. If you don't receive it, retrieve it from AWS:

# Get user details
aws cognito-idp admin-get-user \
  --user-pool-id YOUR_USER_POOL_ID \
  --username george.taylor@taylor-made-software.co.uk \
  --region eu-west-2 \
  --profile cms-deploy

# Reset password (if needed)
aws cognito-idp admin-set-user-password \
  --user-pool-id YOUR_USER_POOL_ID \
  --username george.taylor@taylor-made-software.co.uk \
  --password "TempPassword123!" \
  --temporary \
  --region eu-west-2 \
  --profile cms-deploy

Login and Set New Password

  1. Enter your email and temporary password
  2. Click Sign In
  3. You'll be prompted to set a new password
  4. Enter a strong password (min 12 characters, uppercase, lowercase, numbers, symbols)
  5. Click Change Password
Success! You're now logged into the Serverless CMS Admin Tool.

Create First Site

Navigate to Sites

  1. Click Sites in the left sidebar
  2. Click Create Site button

Site Configuration

Fill in the site details:

Field Description Example
Site Name Internal identifier (lowercase, no spaces) blog
Display Name Human-readable name My Blog
Root Domain Select from configured domains example.com
Description Optional site description Personal blog about technology

The site will be accessible at: https://blog.example.com

Default Template and Page

When you create a site, the system automatically creates:

  • Default Template: A basic page template with header and content zones
  • Home Page: A draft home page using the default template
  • Site Groups: Four Cognito groups for access control:
    • blog-admin - Full site management
    • blog-author - Create and edit pages
    • blog-templates - Manage templates
    • blog-publish - Publish pages

Upload Default Components

Navigate to Components

  1. Click Components in the left sidebar
  2. Click Upload Components button

Upload Component Bundles

The project includes pre-built default components in components/default/:

  • title.zip - Heading component
  • rich-text.zip - Rich text editor
  • image.zip - Image component
  • button.zip - Button component
  • container.zip - Layout container
  • header.zip - Page header
  • site-navigation.zip - Navigation menu
  • page-list.zip - Dynamic page list
  • table.zip - Configurable data table
  • teaser.zip - Content teaser
  • comments.zip - Comments section

Upload Process

  1. Click Choose File
  2. Select one or more .zip files from components/default/
  3. Click Upload
  4. Wait for validation and upload to complete
  5. Components appear in the component library
Bulk Upload: You can upload multiple component ZIP files at once. The system validates each component independently.

Create and Publish a Page

Edit Home Page

  1. Navigate to Sites → blog → Pages
  2. Click on the Home page
  3. Click Edit button

Add Components

  1. In the page editor, click Add Component in a content zone
  2. Select Title component
  3. Fill in the dialog:
    • Text: Welcome to My Blog
    • Level: H1
  4. Click Save
  5. Add a Rich Text component below the title
  6. Enter some content in the rich text editor
  7. Click Save

Configure SEO Metadata

  1. Click the SEO tab
  2. Fill in:
    • Page Title: Welcome to My Blog
    • Description: A personal blog about technology and software development
    • Canonical URL: https://blog.example.com/
  3. Click Save

Publish the Page

  1. Click Publish button
  2. Confirm publication
  3. Wait for publishing to complete (5-10 seconds)
  4. Click View Published Page to see the live page

Your page is now live at: https://blog.example.com/

User Management

Create Additional Users

  1. Navigate to Users in the sidebar
  2. Click Create User
  3. Fill in:
    • Email: User's email address
    • Groups: Select appropriate groups
  4. Click Create

The user receives an email with a temporary password.

System Groups

Group Permissions
admin Full platform access, manage all sites
site-creator Create new sites
site-editor Edit site settings
authentication-admin Manage users and groups

Site-Specific Groups

Each site has four groups (auto-created):

Group Permissions
{siteName}-admin Full site management
{siteName}-author Create and edit pages
{siteName}-templates Manage templates
{siteName}-publish Publish and unpublish pages

Assign Users to Site Groups

  1. Navigate to Sites → blog → Settings
  2. Click Access Control tab
  3. For each group, click Manage Members
  4. Add or remove users
  5. Click Save

Platform Settings

Design Variables

Configure global design variables:

  1. Navigate to Settings → Design Variables
  2. View the Variable Registry (all available CSS variables)
  3. Create site-specific themes by overriding variables

Breakpoints

Configure responsive breakpoints:

  1. Navigate to Settings → Breakpoints
  2. View default breakpoints:
    • --breakpoint-mobile: 768px
    • --breakpoint-tablet: 1024px
    • --breakpoint-desktop: 1280px
  3. Override per site if needed

Page Types

Create custom page types for better organization:

  1. Navigate to Settings → Page Types
  2. Click Create Page Type
  3. Enter name (e.g., Blog Post, Landing Page)
  4. Click Save

Page types help filter and organize pages in the admin interface.

Test Complete Workflow

End-to-End Test

Verify the complete workflow:

  1. Create a template with custom zones
  2. Create a new page using the template
  3. Add components to the page
  4. Configure SEO metadata
  5. Publish the page
  6. View the published page in a browser
  7. Check sitemap: https://blog.example.com/sitemap.xml
  8. Check robots.txt: https://blog.example.com/robots.txt

Verify SEO Features

Check that SEO features are working:

  1. View page source (right-click → View Page Source)
  2. Verify meta tags are present:
    • <title>
    • <meta name="description">
    • Open Graph tags (og:title, og:description)
    • JSON-LD structured data
  3. Test with Google's Rich Results Test

Next Steps

Now that your CMS is configured, you can:

  • Create more sites for different projects
  • Build custom components and upload them
  • Invite team members and assign permissions
  • Configure site themes with custom CSS variables
  • Set up monitoring with CloudWatch
  • Configure backups for DynamoDB and S3
Configuration Complete! Your Serverless CMS is now fully operational. For ongoing maintenance, see the Maintenance Guide.