Giving ❤ 2 your EX

with JAMstack

#Love2yourEX

EX = 

Editor Experience

About Me

Special Guest

Staff Software Engineer @ Gatsby

Agility CMS

#CMSinthe6ix

Startup from the bottom...

Now we're here

About Agility CMS

  • Only headless CMS, with built-in Page Management
     
  • Built by developers over the course of a decade
     
  • Big enough for billion-dollar brands
     
  • Small enough to care about each user

A Few of Our Customers...

Our Vision

A world where you NEVER have to rebuild your website from scratch!

We Believe

EX

DX

UX

  1. User Experience
     
  2. Editor Experience
     
  3. Developer Experience

Success Depends on:

Website, No CMS

EX UX DX
🤬 😎 😃

=😫

Website, Traditional CMS

Wordpress

Drupal

Sitecore

EX UX DX
🙂 😐 😒

=🤔

PHP

ASP.NET

Website, Headless CMS + JAMstack

EX UX DX
😕 🤩 😁

=😔

Contentful

Gatsby

Next.js

Prismic

What's Wrong with the EX in JAMstack?

Top 5 Editor Complaints

 

  1. 👁‍🗨 Can't preview content updates in real-time
     
  2. 🚫 Limited control over creating, deleting and redirecting pages
     
  3. 📄 Limited control over what content is on each page
     
  4. 😖 Inconsistent and in-efficient content workflows
     
  5. 🤼 They feel powerless...

We can do Better!

Here's How...

  1. 👀 Give them a Preview environment
     
  2. 🎁 Give the gift of Page Management

+

Starter Site

Starter Site

Starter Site: Config

Preview: Using Gatsby Cloud 

  1. Login to Gatsby Cloud
     
  2. Create a new Org/Site

 

Preview: Using Gatsby Cloud...

  1. Copy Preview Webhook in Gatsby Cloud
0
 Advanced issue found
 

2. Register Webhook in Agility CMS

0
 Advanced issue found
 

Preview: Using Gatsby Cloud...

Source Nodes

Webhook

= Sub-Five Second Updates

Set Up your Own Custom Preview

Custom Preview: Enable Refresh Endpoint

Set ENV var:

Custom Preview: Add Dockerfile

Dockerfile:

Custom Preview: Run `gatsby develop`

Add to your package.json scripts:

Custom Preview: Build + Push Image

  1. > docker login
  2. > docker image build
  3. > docker image push 
  4. On push of image, deploy somewhere:

Custom Preview: Register Webhook for Preview

  1. Set your Webhook URL in Agility CMS - this would be:

    <url-of-webapp>/__refresh

What is Page Management?

What Isn't Page Management...

When devs dictate pages:

What Isn't Page Management...

When devs dictate what is on a page:

💬 You can only build certain types of pages, with pre-defined layouts

Why?

Editors feel constrained...

Put yourself in their shoes 👞...

💡 Same reason WHY devs don't like Traditional CMS 🤮

Still not Convinced?

This will be you...

Responding to Change Requests

🛑 Stop Building Websites.

Build Tools.

+

👨🏿👱🏻‍♀️

Editors

=

Components

Page

Agility CMS Content Methodology

We believe there are two types of content...

Non-Page Specific Content

Page Specific Content

Page Specific Content

Page Management

Live Demo 🤞

What's in a Page?

Page Properties

  1. Title, URL Slug, and other SEO properties
  2. Page Template
  3. Content Zones - {} object
    - Modules - [] array
      -- Fields - {} object

Page Templates

Defined in Agility CMS, but corresponds to a React Component in your code

Defines the Content Zones of where editors can control what is on the Page

Content Zone

The area(s) on a Page that will be dynamically controlled by the editor

Modules

The functional components that make up a Page

Modules can have their own fields but can also link to any other content (i.e. Blog Posts)

Modules

They are defined in Agility CMS, but correspond to a React Component in your code

Modules

Props are automatically passed to your React Component​ based on your fields 🧙‍♂️

Look ma, no GraphQL?! 🤯

Modules

When you need to access other content, use GraphQL in a <StaticQuery />

Agility CMS Gatsby Starter

  • Clone from agility-gatsby-starter (GitHub) 
  • Uses gatsby-source-agilitycms plugin
  • Will automatically:
    • source your content into GraphQL
    • generate your pages based off your sitemap
    • render your Page Template, and Module React Components

Build Modules, not Websites.👍

Learn More 🎓

Agility Days: Giving ❤ to the EX for JAMstack Sites w/ Gastby + Agility CMS

By James Vidler

Agility Days: Giving ❤ to the EX for JAMstack Sites w/ Gastby + Agility CMS

  • 619