Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chicago training workshop

Chicago training workshop

Contentful Webinars

October 22, 2019
Tweet

More Decks by Contentful Webinars

Other Decks in Technology

Transcript

  1. Welcome to Contentful Training 1 Jim Ambras, Sr. Technical Trainer

    Jason Saroyan, Director NA Partnerships Evan Witte, Strategic Partner Manager Ethan Lewis, Strategic Partner Manager Sam Gentry, Sr. Field Marketing Manager Content infrastructure enables digital teams to power content in modern websites, apps, and devices
  2. Please raise your hand if you have previous experience with…

    • Drupal/ Acquia • AEM • Sitecore • Wordpress • Other
  3. 4 Our vision First, how the market has shifted, and

    how innovative companies stay ahead
  4. Companies are building more software than ever before to connect

    with their customers wherever they are: modern websites, mobile apps, on-site, in-home, and beyond. We are in the middle of a massive market shift 9 Now, all companies are digital product companies
  5. CMSes slow down modern digital teams 10 Rigid data models

    Prevents reusability and creates content silos Requires heavy customization and specific tools Monolithic suites Legacy workflows Templating Editor Database Does not fit modern software delivery pipelines
  6. On-premises systems MONOLITHS The way software is built has changed

    forever Cloud-based, modular architectures have become the standard for building digital products 11 Customization Interoperability Cloud-based stacks MICROSERVICES
  7. Our vision: stacks beat suites 12 Innovative companies will assemble

    modular stacks, with a content hub at the center Digital Experience Suites Digital Experience Stacks
  8. Contentful lets you build digital products, fast 13 APIs JSON

    Structured content Reuse and repurpose content, independent of channel or language Composable stack, connected to other platforms, at cloud scale Integrate with digital delivery workflows for launch & optimization Decoupled architecture Agile workflows
  9. 15 Proven results across multiple solutions Teams can launch, iterate,

    and experiment with new digital products more rapidly 5x faster to launch new customer touch points Modern Stack Websites 3x faster to launch new event and campaign microsites Personalized Experiences 14% increase in conversion rate with personalization integrations Agile eCommerce 66% decrease in unit cost of new digital products across business teams Digital Delivery Platforms
  10. Create reusable content Reuse the same content across pages, properties,

    and channels 16 JSON output Rendered view Rich text editor view
  11. Manage all your content in one place Content models gives

    editors full control of all their content 17 Content variations Localized content Microcopy Content metadata Workflow metadata Design systems Content
  12. Enterprises are replatforming on Contentful 18 TELUS transformed from slow

    and repetitive content updates to agile product releases for 12M customers Before Siloed content Slow to market Technical debt 7 content sources across 5 business units, powering 30+ digital products/properties After Fast time-to-value: reference architecture Low risk: more experiments & iteration Improved agility: 11 deploys per day One content infrastructure to rule them all, across business units and digital products 4x faster
  13. S O L U T I O N Help &

    Support I N D U S T R Y Technology R E S U L T S • Single source of truth to manage content for a growing list of support services: help & technical documentation, FAQs, help articles, product documentation and evaluative resources. • Reusing content for in context JIRA platform help in the product itself • Governance such as teams, tasks, and roles & permissions support their collaborative workflows Replatform help & support to purpose built, modern stack From 2 weeks to 5 minutes to change the capitalization of JIRA to Jira across 20,000 pages of content ↓
  14. S O L U T I O N Knowledge base

    I N D U S T R Y Transportation R E S U L T S • Web and mobile Help Centers for all major markets powered by Contentful • Reusability of content across audiences: driver, rider, and call center support • Easily manageable content: all articles for drivers and riders to find commonly asked questions in a single repository • Advanced keyword search capabilities Consistent self-serve, omnichannel experiences ↓ Drastic reduction in time and resources spent updating and maintaining consistent answers across audiences
  15. S O L U T I O N Knowledge base

    I N D U S T R Y Financial Services R E S U L T S • From completely hard coded Help Center and .com to easily searchable answers with Algolia including FAQs with setup instructions, product walkthroughs and more • Integration with Zendesk allows for easy triage and ticketing workflows minus the context switching • Increased innovation & sophistication: now teams can test and experiment on visuals, without wasting dev hours Seamless & extensible customer support experiences Decreased time on content changes; went from one month to just minutes ↓
  16. Contentful @ Contentful How we power the marketing website https://www.contentful.com/

    23 Website Github Netlify React Gatsby Content Business data Code Tools External content Infrastructure - 24/7 monitoring - scaling & performance - CDN - security & compliance - disaster recovery AWS Lambda APIs
  17. Contentful APIs allow you to manipulate content with code Content

    at scale • Independent editorial and development workflows • Continuous Integration / Continuous Deployment (CI/CD) • Refactoring content models • Large-scale content changes
  18. Content Management API Read/Write Create, edit, publish, unpublish, archive, and

    delete content and content model Content Preview API Read-only Retrieve draft and updated content in addition to published content Content Delivery API Read-only Retrieve published content to display in an app or website Images API Read-only Retrieve and apply transformations to images stored in Contentful Contentful has 4 Core REST APIs
  19. Contentful is Content Infrastructure Content Creator Content Delivery API CLI

    Web App Content Management API SDK SDK SDK Apps & Websites Conversational & Wearables Apps & AR/VR Powerful CLI and tooling to integrate into existing developer workflows or to help define brand new workflows The APIs, webhooks and SDK’s developers need to power content in any digital product. Content Preview API Customizable web app for marketers and publishers to collaborate and create content. Developer Images API
  20. Independent editorial and development workflows Editorial Workflow Development Workflow Editors

    never have to pause content creation to wait for developers to make website changes Editors never have to wait for developers to deploy new or changed content Developers can run a full “code-like” change management process with version control, QA and CI/CD using the tools they are familiar with. Developers won’t get bogged down with ad hoc requests to update content
  21. Contentful Terminology Organizations Top most parent object, connects users to

    a company. Users A User can have access to all or limited access to certain spaces based on roles & permissions. Spaces A child entity of an organization. A container for content, assets and UI extensions. Environments Are entities belonging to a space, they contain an isolated copy of content and assets. Implications for content modeling 30
  22. Contentful’s “API-First” Approach 1. Fast 2. Flexible 3. Modern Architecture

    1. Fast implementation. Fast performance. - Cloud-native SaaS with CDN - Use the development tools you know - Fast, scalable content migration and transformation using code 2. Build any user experience for any device (anywhere). ‐ A large collection of SDKs ‐ Flexible content models ‐ Designed for easy localization 3. Take advantage of the “modern stack” architecture. - Combine best-of-breed, single purpose apps (micro-services) - Built-in integrations with popular platforms - Connect platforms easily using webhooks and UI extensions
  23. Where and when does rendering happen? 1 2 3 Dynamic

    on Server Static Site Generator Dynamic on Device A client-side app using the Contentful SDKs requests content from the Contentful APIs and renders the content on the device. A server-side app receives a request from an end user, retrieves content from Contentful (and possibly other data sources), renders the content, and sends it back in response. A static site generator fetches content from Contentful at timed intervals or on content change webhook then builds the rendered HTML pages and stores them on a static web host.
  24. Pros • Lots of languages & framework options • Reactive

    – no stale data • Easier SEO • Secure secrets (API tokens not exposed to end-users) Cons • Server-related scalability ($$$) • Higher page latency • Requires external caching or CDN • Potential single point of failure Dynamic on Server
  25. Static Site Generator (SSG) DEMO 1. Code or content changes

    trigger webhook to generate static site -OR- Generation triggered on set interval (hourly, daily, etc.) BUILD TIME REQUEST TIME
  26. Pros • Easier SEO • Offline capability • Static HTML

    is fast and simple to serve • Secure secrets (API tokens not exposed to end-users) Cons • No immediate preview/potential for stale data • Web page-centric • Generation time can be problematic for frequent content changes • Requires external hosting, caching, and CDN Static Site Generator (SSG)
  27. Pros • Simple • Reactive – no stale data •

    Fully leverages the Contentful CDN Cons • SEO support requires more effort • Possible browser compatibility issues Dynamic on Device
  28. Delivery Models: Pros & Cons Dynamic on Server Static Site

    Generator Dynamic on Device Dynamic content • • • Page latency • • • App server load • • • SEO • • • Secure Secrets • • • Contentful CDN • • • Availability • • •
  29. Dynamic Hybrid with Node.js 1 2 Dynamic on Server Dynamic

    on Device JavaScript framework takes over user interaction and hydrates page Page initially built server-side on Node.js with JavaScript framework that supports isomorphic execution (e.g. React)
  30. Content Management API Read/Write Create, edit, publish, unpublish, archive, and

    delete content and content model Content Preview API Read-only Retrieve draft and updated content in addition to published content Content Delivery API Read-only Retrieve published content to display in an app or website Images API Read-only Retrieve and apply transformations to images stored in Contentful Contentful Core APIs
  31. Contentful is Content Infrastructure Content Creator Content Delivery API CLI

    Web App Content Management API SDK SDK SDK Apps & Websites Conversational & Wearables Apps & AR/VR Powerful CLI and tooling to integrate into existing developer workflows or to help define brand new workflows The APIs, webhooks and SDK’s developers need to power content in any digital product. Content Preview API Customizable web app for marketers and publishers to collaborate and create content. Developer Images API
  32. The API for managing content on Contentful • Read/Write –

    You can modify content programmatically and refactor the content model • Enables CI/CD – Allows you to easily move content between spaces and environments using scripts • No CDN – Calls to this API are not cached, so you get and edit the most up-to-date content Content Management API
  33. Details Contentful’s Content Management API (CMA) helps you manage content

    in your spaces. This is a read/write API API Base URL https://api.contentful.com Content Management API
  34. Updating Content Take in consideration that Contentful does not merge

    changes made to content, so when updating content, you need to send the entire body of an entry. If you update content with a subset of properties, you will lose all existing properties not included in that update. You should always update resources in the following order: - Fetch current resource. - Make changes to the current resource. - Update the resource by passing the changed resource along with current version number. Content Management API
  35. Example Create a single entry - Request PUT /spaces/yadj1kx9rmg0/environments/staging/entries/post0001 -

    Headers - Authorization CFPAT-12345... - Content-Type application/vnd.contentful.management.v1+json - X-Contentful-Content-Type blogPost - Parameters - space_id yadj1kx9rmg0 - environment_id staging - entry_id post0001 More details Get a single entry Content Management API
  36. Example Create a single entry - Body More details Get

    a single entry Content Management API { "fields": { "title": { "en-US": "Hello, World!" }, "body": { "en-US": "Welcome to our webinar!" } } }
  37. Example Create a single entry - Response (201 Created) More

    details Get a single entry Content Management API { "sys": { "id": "post001", "type": "Entry", "contentType": { "sys": { "type": "Link", "linkType": "ContentType", "id": "blogPost" }}, "version": 1, "space": { "sys": { "type": "Link", "linkType": "Space", "id": "yadj1kx9rmg0" }}, "environment": { "sys": { "type": "Link", "linkType": "Environment", "id": "staging" }}, "createdAt": "2019-02-18T11:29:46.809Z", "createdBy": {"sys": {"type": "Link","linkType":... "updatedAt": "2019-02-18T11:29:46.809Z", "updatedBy": {"sys": {"type": "Link","linkType":... }, "fields": { "title": { "en-US": "Hello, World!" }, "body": { "en-US": "Welcome to our webinar!" } } }
  38. Same functionality as the Content Delivery API except it allows

    access to both published and unpublished content • Editorial Preview – powers a preview deploy/version of your frontend to allow content editors to see their content exactly as it will look when published • Read Only – You can’t accidently change content • No CDN – Calls to this API are not cached so preview will always have the most up-to-date content Content Preview API
  39. Content Preview API Details In addition to the Content Delivery

    API (CDA) for published content, the Preview API is for previewing unpublished content as though it were published. It maintains the same endpoints and parameters as the CDA, but delivers the latest draft, updated, and published entries and assets. This is a read-only API API Base URL https://preview.contentful.com Learn more about the Preview API
  40. The primary API for incorporating Contentful content in your front-end

    • Read Only – You can’t accidently change content • Published Only – You can’t accidentally reveal unpublished content • CDN – Calls to this API take advantage of the Contentful CDN Content Delivery API
  41. Details The Content Delivery API (CDA) is a highly available,

    highly scalable, read-only API for delivering content to apps, websites, and other channels. This API is available via a globally distributed content delivery network (CDN) API Base URL https://cdn.contentful.com Content Delivery API
  42. Example Get a single entry - Request GET /spaces/yadj1kx9rmg0/environments/staging/entries /5KsDBWseXY6QegucYAoacS?access_token=fdb4e7a3102747a02

    ea69ebac5e282b9e44d28fb340f778a4f5e788625a61abe - Parameters - space_id yadj1kx9rmg0 - environment_id staging - entry_id 5KsDBWseXY6QegucYAoacS - access_token fdb4e7a3102747a02ea69ebac5e282b9e44 d28fb340f778a4f5e788625a61abe Content Delivery API More details Get a single entry
  43. Content Delivery API Example Get a single entry - Response

    (200 OK) { "sys": { "space": { "sys": { "type": "Link", "linkType": "Space", "id": "yadj1kx9rmg0" } }, "id": "5KsDBWseXY6QegucYAoacS", "type": "Entry", "createdAt": "2017-02-20T17:18:50.583Z", "updatedAt": "2017-02-21T14:29:11.733Z", "environment": { "sys": { "id": "staging", "type": "Link", "linkType": "Environment" } }, "revision": 2, "contentType": { "sys": { "type": "Link", ... "locale": "en-US" }, "fields": { "productName": "Playsam Streamliner Classic Car ... "slug": "playsam-streamliner-classic-car-espresso", "productDescription": "A classic Playsam design ... "image": [{ "sys": { "type": "Link", "linkType" ... "tags": [ "wood", "toy", "car", "sweden", "desi ... "categories": [{ "sys": { "type": "Link","linkT ... "price": 44, "website": "http://www.amazon.com/dp/B001R6JUZ2/" ... More details Get a single entry
  44. Allows you to store a single high quality image in

    Contentful and resize or transform it at delivery time to match the size & quality needed for the requesting device • Read Only – You can’t accidently change content • CDN – Calls to this API take advantage of the Contentful CDN Images API
  45. Images API Details The Contentful Images API allows the retrieval

    and manipulation of image files referenced from assets. In other words, the Images API allows you to resize and crop images, change their background color and convert them to different formats Upload high-quality assets, deliver exactly what your app needs and still get all the benefits of our caching CDN API Base URL https://images.ctfassets.net
  46. Example - Changing formats Image format - Request GET /yadj1kx9rmg0/wtrHxeu3zEoEce2MokCSi/cf6f68efdcf625fdc06

    0607df0f3baef/quwowooybuqbl6ntboz3.jpg?fm=png - Parameters - space_id yadj1kx9rmg0 - asset_id wtrHxeu3zEoEce2MokCSi - token cf6f68efdcf625fdc060607df0f3baef - filename quwowooybuqbl6ntboz3.jpg - image_format fm=png - Response (200 OK) Images API More details Image format
  47. More details Specify width & height Images API Example -

    Resizing & Cropping Specify width & height - Request GET /yadj1kx9rmg0/wtrHxeu3zEoEce2MokCSi/cf6f68efdcf625fdc06 0607df0f3baef/quwowooybuqbl6ntboz3.jpg?w=800&h=600 - Parameters - space_id yadj1kx9rmg0 - asset_id wtrHxeu3zEoEce2MokCSi - token cf6f68efdcf625fdc060607df0f3baef - filename quwowooybuqbl6ntboz3.jpg - width w=800 - height h=600 - Response (200 OK)
  48. What is GraphQL • It is an open-source data query

    and manipulation language for APIs, and a runtime for fulfilling queries with existing data • It allows clients to define the structure of the data required, and exactly the same structure of the data is returned from the server, therefore preventing excessively large amounts of data from being returned • GraphQL schemas are strongly typed - reliably know what type of data is where
  49. • It provides a GraphQL interface to the content from

    Contentful. • Each space has a GraphQL schema based on its content model. The schema is generated at request time so it is always current. • You can use this API to consume both published and unpublished content. • There is query complexity limit currently set to allow retrieval of 11,000 entities in one request • This API supports schema stitching which allows two or more GraphQL APIs to be combined into a single schema that can be presented to a client application GraphQL Content API
  50. Small GraphQL vs. Big REST Rest API call: curl -X

    GET --header "Accept: application/json" --header "Authorization: Bearer ..." "https://api.deutschebahn.com/fasta/v2/stations/1866" GraphQL API call: curl -X POST --header "Content-Type: application/json" --header "Authorization: Bearer ..." -d '{"query": "{stationWithStationNumber(stationNumber: 1866){facilities{type description} }}"}' https://bahnql.herokuapp.com/graphql query{ stationWithStationNumber(stationNumber: 1866){ facilities{ type description } } }
  51. Small GraphQL vs. Big REST Rest API Response: { "stationnumber":

    1866, "name": "Frankfurt (Main) Hbf", "facilities": [ { "equipmentnumber": 10313104, "type": "ESCALATOR", "description": "zu Gleis 103/104 (S-Bahn)", "geocoordX": 8.66231455, "geocoordY": 50.10727055, "state": "INACTIVE", "stateExplanation": "under construction", "stationnumber": 1866 }, { "equipmentnumber": 10313109, "type": "ESCALATOR", "description": "zu Gleis 101/102 (S-Bahn)", "geocoordX": 8.66341625, "geocoordY": 50.1074703, "state": "INACTIVE", "stateExplanation": "under construction", "stationnumber": 1866 }, GraphQL API Response: { "data": { "stationWithEvaId": { "facilities": [ { "type": "ESCALATOR", "description": "zu Gleis 103/104 (S-Bahn)" }, { "type": "ESCALATOR", "description": "zu Gleis 101/102 (S-Bahn)" },
  52. 76 1. Core content modeling concepts 2. Reusable content and

    “assemblies” 3. Inheritance and metadata 4. EXAMPLE: Content modeling for localization Topics
  53. Contentful Domain Model Organizations Top most parent object, connects users

    to a company. Users A User can have access to all or limited access to certain spaces based on roles & permissions. Spaces A child entity of an organization. A container for content, assets and UI extensions. Environments Are entities belonging to a space, they contain an isolated copy of content and assets. Implications for content modeling 78
  54. What should you store in Contentful? Content • Text •

    Images • Audio/Video • Geo location Micro-Copy • Field labels • Button text • Navigation Localized Content • Localization strategies • Translation permissions/workflows Content Metadata • SEO & Social Media • Images as content types • Tags for navigating the content model Process Metadata • Site functionality (sort, search, etc.) • Editorial workflow • Webhooks Content Modules (“Assemblies”) • Atomic design – chunks not blobs • Giving content creators control over layout • Visual design systems 79
  55. Shared + independent fields 88 Product Name Manufacturer Color Product

    Type (reference) Shoe Size Sole type Heel type Pants Waist Length Type (formal, casual) Shirt Sleeve length Collar Fabric weight You can add or change fields that apply to every product without duplicating the change for every product type
  56. Field level localization vs entry level localization Title Text (FR)

    Field Level Localization Entry Level Localization using Localization Objects Title Slug Text (EN) Text (FR) ... Title Slug Ref 1 Ref 2 ... Title Text (EN) 90
  57. The field Localized is an array that contains an entry

    for each locale Entry level localization - two content types 91 1 2
  58. Contentful Content Modeling Methodology Create a Pool of Sample Designs

    • Conduct an audit of existing content • Create prototypes of future content • Assemble screen shots into a slide deck Create a draft model based on visible fields • Create a list of visible fields from instances of each content type • Reconcile similar fields to create a master list • Group fields into content types of appropriate size & define relationships Revise model for functionality & best practices • Add invisible “meta” fields (for queries, workflow, webhooks, etc.) • Optimize for content creators • Optimize for developers • Implement naming conventions QA: Validate with actual content • Try to “break” the content model by using it to build diverse instances or real world content Test with Content Creators • Watch authors use the content model (usability test) • Create documentation, help and job aids Test with Developers • Have developers QA the model against front-end, migration scripts, etc. Test with Designers • Have designers test the content model by creating a variety of designs Assemble key stakeholders to define strategy • Clarify business objectives • Agree on required functionality • Make strategic content architecture decisions STEP 1 STEP 2 STEP 3 STEP 4 STEP 5 STEP 6 STEP 7 STEP 8 94
  59. 1. Reusable content—change content in one place and it changes

    everywhere 2. Customizable workflow—build the approval process you need 3. Independence—add or change content instantly without the assistance of technical teams 4. Version control—see earlier versions of content and roll back instantly 5. Flexible localization—easily manage country-specific or audience-specific text and images So, what’s in it for Content Authors? Demo 96
  60. • iFrame • Contentful UI Extensions SDK • Allowed languages

    - upto JS ES6 • Integrate Contentful with other platforms • Customise the Contentful Webapp UI to suit your editorial needs What is an UI extension?
  61. Spotify editors can search for artists or songs and embed

    them into new content instantly (no fussing with multiple browser tabs, copy and paste, or human errors). Custom UI for Spotify Artists content creators
  62. Customers want to: • Run experiments in microservices architectures •

    Separate central content from experimentation • Deliver experiences fast • Minimize context switching/cognitive drain • Eliminate mistakes (less manual, less error prone) Why did we build it? Business problems 110
  63. Hero Featured CTA Page Title: “Homepage” Slug: “home” Component: []

    Enabling experimentation using the App CTA (control) CTA (variation) Variation container “Get the guides” “See experiences”
  64. Architectural overview End-to-end technical setup 114 Contentful Experimentation SDK Contentful

    SDK Optimizely SDK Cache: Datafile Invalidate when experiment changes Content Delivery API: Data holds variations of content Tracking Presentation Layer Content Delivery API: Flattened data with selected variation of content
  65. • HTTP POST request whenever something happens to your content

    • 18 Pre-built webhooks • Customizable JSON payloads • Triggers can be filtered by action, content type, environment What is a webhook?
  66. 123 1. Why “content as code” 2. CLI Tools 3.

    Space modeling 4. Using Environments for CI/CD 5. 5-steps to managing your content with code 6. Refactoring using the Expand/Contract pattern Topics
  67. Contentful Domain Model Organizations Top most parent object, connects users

    to a company. Users A User can have access to all or limited access to certain spaces based on roles & permissions. Spaces A child entity of an organization. A container for content, assets and UI extensions. Environments Are entities belonging to a space, they contain an isolated copy of content and assets.
  68. • Use spaces to separate content that has different teams

    or different use cases unless they need to share content • For large scale implementations, consider putting global shared content, team shared content and project-specific content in separate spaces • Roles are specific to a space—use separate spaces if the same users need different permissions Tips for getting the most out of spaces
  69. One space to rule them all Space 1 Used for

    microservice 1 all projects at org Project Spaces Content consists of Assemblies, Topics, and Media Best pattern for use cases where all of the following are true: • Content types and/or content entries are reusable across projects. • Projects all have the same localization needs. • Roles & Permissions provide sufficient access controls across all projects. • Content is intended to be used for multi-channel delivery. • Multiple teams or business units want to collaborate together across projects.
  70. Separate space per project Space 1 Used for microservice 1

    specific content Space 2 Used for microservice 2 specific content Space N Used for microservice N specific content ... Project Spaces Content consists of Assemblies, Topics, and Media Best pattern for use cases where one or more of the following is true: • Content types are not reusable across projects. • Projects have different localization needs. • Roles & permissions cannot be effectively used to create granular access controls. • Business units have a regulatory or legal requirement to keep their project and content separate.
  71. 3-Tier Space Pattern Space 1 Used for microservice 1 specific

    content Space 2 Used for microservice 2 specific content Space N Used for microservice N specific content ... Shared Space Used for highly reusable content across org Global Shared Spaces Project Spaces Shared Space 1 Used for reusable content for line of business 1 BU/Team Shared Spaces Shared Space K Used for reusable content for line of business K ... Content consists of Assemblies, Topics, and Media Requires UI Extension for cross space referencing
  72. Consider the following when deciding which space pattern to utilize:

    • Will governance rules (i.e. user roles and access permissions) be the same or different among the teams and projects? • Will content types be the same and/or shared across projects? • Will projects have the same localization requirements? Same or different set of locales? • Is there a legal or regulatory requirement for projects and their content to be isolated? Things to think about
  73. • Use Microservice Spaces strategy instead of monolithic ones •

    Microservice Spaces could be defined based on: – Business Units – Business Functions – Projects – Content/Dev Teams • Goals: – Reduce dependencies and time-to-market – Improve release/publish lifecycle Space Planning Strategy
  74. 1. Build Build your application and verify that the code

    compiles as expected. 2. Test Run automated tests; unit tests; integration tests. 3. Migrate Run your migration scripts to update your content model for the space/environment you will next deploy to. 4. Deploy Deploy the application to a number of environments. Often to a staging or pre-production environment manually test before deploying to production. 5. Test Run automated end-to-end tests against the environments you deployed your application to in the previous step. CI/CD Best Practice
  75. • Convert master environment into an environment alias • A

    promotion or rollback is achieved by retargeting the alias to another environment – which happens instantly • Production content is served from unscoped/master API routes through the master alias • Currently only master can be an environment alias Environment Aliases In a nutshell
  76. Enabling risk free releases and instant rollbacks master is no

    longer a stand-alone environment but acts as an alias targeting another environment Production content is served from release-1 environment Execute migration scripts Production content is now served from release-2 environment Release 2 release-1 release-2 Environment aliases Change master alias to target release-2 environment master Release 3 release-3 Optional: Delete release-1 environment Production content is now served from release-3 environment Change master alias to target release-3 environment
  77. Minimize downtime and allow instant rollback master is no longer

    a stand-alone environment but acts as an alias targeting another environment Production content is served from release-1 environment Execute migration scripts Change master alias to target release-2 environment Production content is now served from release-2 environment Promote Problem discovered! Rollback is required Rollback Rollback master to target release-1 environment release-1 release-2 Use case: Promote an environment to master master
  78. Better safe than sorry master is no longer a stand-alone

    environment but acts as an alias targeting another environment Content is served from prod environment Run migration scripts Restore by changing master alias to target prod-backup environment Backup Problem discovered! Rollback is required Restore prod prod-backup Use case: Backup and restore master Optional: Delete prod environment prod Optional: Recreate prod from prod-backup Change master alias to target prod environment
  79. 1. Experiment with a content model in the web app

    where you can see JSON output 2. Create the environments you need for CI/CD. Optionally use scripts to clone the master environment. 3. Create a script to programmatically build the full content model 4. Create migration scripts to move content into and out of the content model 5. After testing, propagate your changes into the Prod environment 5 Steps
  80. Explore what content types, fields, validations etc. look like as

    JSON to speed your future script writing. Experiment with different data models. Try to add complex relationships in your model, how is that represented in JSON? 1. Create content types in the web app
  81. Every space has one master environment by default. Each environment

    is a full isolated clone of the master environment. Includes a full copy of all the content types, entries, assets, locales and webhooks. You can setup as many environments as your workflow requires. 2. Set up your initial environments
  82. Use our content-migration tool to create your content model programmatically.

    File: content-model-v1.js Write a script to execute your content model. File: create-model.js Invoke with Contentful CLI against one of the test environment. contentful space migration --space-id abcedef --environment-id feature-wow create-model.js 3. Create a script to build the content model
  83. 4. Create a migration script to update model Programmatically update

    an existing content model, i.e. migrate your content model. File: content-model-animal-v2.js Execute with same script, except use new file: contentful space migration --space-id abcedef --environment-id feature-wow create-model.js Note when you execute a content migration, both the content type and all content entries (records) based on that content type are updated!
  84. 5. Propagate your tested changes to Prod After you have

    tested and verified your changes in sandbox environment, apply the content model migration to production by simply executing the same script but specifying master as target environment. contentful space migration --space-id abcedef --environment-id master create-model.js
  85. Migrations: the “Expand” Phase Content entries such that the changes

    do not prevent the currently released version of the software from running New fields and content types By leaving the existing content in place, while augmenting the content types and content such the new version of the software can also run. The content model can now support both the current version and the new version of your software in parallel. Add Transform
  86. Migrations: the “Contract” Phase Once all users are successfully using

    your new version, the “contract” phase of the migration is to run to remove unneeded content types, fields and content. Remove
  87. Committed structure overview Platform-level features, infrastructure capacity, and expert advice

    tailored to the requirements and objectives of your organization. A space is a content repository serving a single project / team. Guaranteed levels of service uptime and customer support responses for running business-critical websites, apps, and digital properties. The number of users included in the subscription. API calls and asset bandwidth amount included in the subscription and the fees for consuming additional units. Spaces Platform SLA Users Utility limits Platform Spc 1 Spc 2 Spc 3 Spc 4 Spc 5 Spc 6 SLA + +
  88. Space limits (standard spaces) MICRO Master environment 1 Sandbox environments

    1 Roles 1 Locales 2 Content types 24 Records 5,000 MEDIUM Master environment 1 Sandbox environments 3 Roles 2 Locales 7 Content types 48 Records 25,000 SMALL Master environment 1 Sandbox environments 2 Roles 2 Locales 4 Content types 24 Records 10,000 LARGE Master environment 1 Sandbox environments 5 Roles 4 Locales 10 Content types 48 Records 50,000
  89. Space limits (advanced spaces) PERFORMANCE 1X Master environment 1 Sandbox

    environments 10 Custom roles yes Roles 10 Locales 75 Content types 192 Records 250,000 Roles 20 Locales 150 Content types 384 Records 500,000 Roles 7 Locales 30 Content types 96 Records 100,000 PERFORMANCE 2X Master environment 1 Sandbox environments 20 Custom roles yes PERFORMANCE 3X Master environment 1 Sandbox environments 30 Custom roles yes
  90. Space limits (advanced spaces) Roles Unlimited* Locales Unlimited* Content types

    Unlimited* Records Unlimited* PERFORMANCE UNLIMITED Master environment 1 Sandbox environments 150 Custom roles yes *Subject to technical platform limits listed at: https://www.contentful.com/developers/docs/technical-limits/
  91. Platform type Professional Infrastructure type yes Single Sign-On (SSO) yes

    24/7 infrastructure monitoring yes Static webhook IPs yes Encryption in transit yes API white-labelling no Encryption at rest yes Security reporting no Webhook templates yes PCI DSS compliance no Proof-of-Concept (PoC) spaces yes Multi-region delivery infrastructure (MRDI) no
  92. Platform type Scale Infrastructure type yes Single Sign-On (SSO) yes

    24/7 infrastructure monitoring yes Static webhook IPs yes Encryption in transit yes API white-labelling yes Encryption at rest yes Security reporting yes Webhook templates yes PCI DSS compliance yes Proof-of-Concept (PoC) spaces yes Multi-region delivery infrastructure (MRDI) no
  93. Platform type High Availability Infrastructure type yes Single Sign-On (SSO)

    yes 24/7 infrastructure monitoring yes Static webhook IPs yes Encryption in transit yes API white-labelling yes Encryption at rest yes Security reporting yes Webhook templates yes PCI DSS compliance yes Proof-of-Concept (PoC) spaces yes Multi-region delivery infrastructure (MRDI) yes
  94. SLA Plan Components Silver Gold Platinum Platinum** Maximum response time

    Severity 1 (Critical) 8 biz hrs 4 hrs 1 hr 1 hr Severity 2 (High) 16 biz hrs 8 hrs 2 hrs 2 hrs Severity 3 (Standard) 24 biz hrs 8 biz hrs 4 biz hrs 4 biz hrs Service availability Content Delivery API 99.5% 99.7% 99.9% 99.99% Content Management API 99.5% 99.5% 99.5% 99.5% Asset CDN 99.5% 99.7% 99.9% 99.99% **When the customer is on the High Availability platform
  95. Users Description Quantity Unit price Amount Included users 10 Included

    $0 Additional users 0 $x / user $0 Annual fee 10 $0
  96. Usage Included API Calls Bandwidth Standard Space 2,000,000/ month .075

    terabytes/ month Enterprise Space 7,000,000/ month 2 terabytes/ month Overages API Calls Bandwidth Standard Space $5/Million api calls $65/ 1 terabyte Enterprise Space $5/Million api calls $65/ 1 terabyte
  97. LOW MEDIUM HIGH LOW MEDIUM HIGH Technology → Business →

    Digital Products Content Platform Digital Organization Speed or cost-driven Value-driven High performance, high velocity, multi-channel delivery Modern stack site or app Campaign optimization Cross-channel customer journey Innovation hub Non-web interface Global marketing & localization SEO landing pages at scale Digital workforce applications Knowledge portals The path to value What are you building now? What do you aspire to? Agile eCommerce
  98. Legal & privacy Corporate info Design system Products & services

    Mobile phone marketing Contentful facilitates highly reusable architectures Example: a 3-tier content architecture covering the org, teams, and individual applications ← Line-of-business domains GLOBAL Tier 1 spaces for teams focused on highly reusable content APPLICATION Tier 3 spaces for teams focused on app-specific content BUSINESS UNIT Tier 2 spaces for teams focused on line-of-business content ← Org-wide components ← Specific content services Mobile accessories Mobile deals Employee phone program Mobile overview
  99. Contentfulness Collaboration Enable large scale content management based on structured

    content repositories. Use your favorite tools and preferred technology to build your digital architecture. Select the components you need to get started fast, and grow to enterprise scale. Interoperability Composability Structured Content Empower your digital teams to work together to ship products faster. Staying true to our beliefs
  100. Roadmap themes Empowered teams can collaboratively curate, create and deliver

    content across channels and campaigns using agile iterative processes. • Content planning • Content creation & curation • Content delivery pipelines • Growth and execution Content operations at scale Modern experience stack A modern experience management stack enabling teams to build use-case specific solutions through rapid iteration and integration of best-of-breed tools and services. • Open, modular stacks • Seamless orchestration • Cloud performance • Security & compliance
  101. Admin & Scale Organization management • Teams in spaces •

    Space home redesign & improvements • New user invitations directly to Teams Create & Manage Content automation • Comments • Tasks for workflows (Alpha) • Scheduled publishing Editorial experience improvements Recent Releases Build & Deliver • Environment aliases (Alpha) Marketing integrations • Optimizely App • Image Focal point App
  102. - early-stage opportunities with committed resources, scope and delivery schedule

    still to be determined Extensibility Platform Content Automation Content variants Create & Manage Admin & Scale Q4 Q1 Q2 Compliance Asset Security - Deleting and Archiving Apps framework and reference apps Collaboration & Governance SSO Group Auto-Provisioning with SCIM Integration Two-Factor Authentication Content releases Asset Security - Authentication Roles and permissions improvements
  103. Problem Customers want to work within their own, individual stacks

    of services. Integrating these stacks with Contentful is possible but it requires significant time and resource investments. Benefits We allow customers to work with their favorite services easily and in an adaptable, encapsulated way. We are lowering the entry barrier to integrated solutions without re-inventing the wheel. The best way to do that is through a powerful Contentful Apps offering. Next Milestone The team is looking into several tracks across Q4 and Q1: • Enabling first customers to build their own Contentful Apps • Release a set of reference Contentful Apps which enable more advanced use cases for Apps Apps framework and reference apps Q4
  104. SSO Group Auto-Provisioning with SCIM Integration Problem Currently, customers who

    leverage our SSO offering have to follow a multi-step workflow to get new users set up with the right roles & permissions. Because this process is manual and typically involves multiple different teams, it is error-prone and doesn’t scale well for the needs of larger organisations. Benefits SCIM makes it very easy to add and manage access for users. It also adds to our security and compliance offering by following best practices for identity and access management. Next Milestone In Q4, we are completing the foundational work needed in order to make the user creation process on our platform compliant with the SCIM schema. We are also preparing an early access program for 1-2 customers to get access to SCIM before we release it in Q1 2020. Please let us know if you are interested! Q1
  105. Two-Factor Authentication Problem Customers who don’t have SSO setup for

    their organization did not have the ability to enable two-factor authentication to protect access to the Contentful web app. Benefits Non-SSO customers will now be able to enable two-factor authentication for their user account. SSO customers will still be able to enable 2FA through their SSO provider which will continue to work with the Contentful authentication workflow. Next Milestone The team will be looking for early adopter customers to try out enabling 2FA soon. The first release will be available in 2019 Q4. Q4
  106. Asset Security - Deletion and Archiving Problem • Need to

    ensure deleted assets are permanently removed from the Contentful platform • Customers need to comply with regulation / legislation requirements Benefits • Enable new uses cases that allow Contentful to manage and deliver sensitive content • Enable customers to comply with specific governance / regulatory / legislative requirements Next Milestone • New assets management service layer that invalidates and purges asset files on the CDN • Working on the solution proposal for Milestone 2 - Asset Authentication Q4
  107. Content releases Problem Practitioners need to create and manage batches

    of content. They have linked structured content that needs to be published together, such as topics and assemblies. They also have unlinked but otherwise-related content that needs to be published at the same time, such as embargoed product releases and website updates. Benefits Practitioners are able to group batches of content, related or unrelated and release them together. This enables them to easily launch embargoed releases at specific times and coordinate site-wide updates. They have more confidence that they will have a successful launch without missing any references or other structured content components. Next Milestone Working on design and discovery. Have some initial designs created and we are conducting research.
  108. Content variants Problem Practitioners and campaign managers run campaigns that

    change over time. In the US, for example, many stores (online and off) run campaigns around US thanksgiving for Black Friday and Cyber Monday. These campaigns run over a four-day holiday weekend. They need to update specific content entries multiple times over that time period but currently have no way to have multiple versions of an entry in Contentful. They need to modify the entry, publish, modify again, etc. A single entry is involved in that process, which prevents them from using multiple entries to achieve this. Benefits Practitioners and campaign managers will have the ability to manage multiple variants of the content and schedule these versions to go live at different times. In the above example the Black Friday and Cyber Monday campaign banners would be planned in advance then released sequentially. Next Milestone Currently in early design and discovery phase.
  109. Problem When multiple teams collaborate in a space they need

    to be able to define and enforce content permissions to ensure that each team can only manage the specific subset of entries that belong to their domain (business unit/function, region, product line or brand). Part of such collaboration also requires defining further what kind of content permissions need to apply within a space environment. Benefits Providing more flexibility to define permissions on an entry- and environment-level will allow practitioners and developers to efficiently collaborate on a larger scale. The improved governance model will increase productivity by limiting access to relevant content and environments and help streamline processes for content and development operations. Next Milestone We are researching and testing possible solution approaches, and are planning to get some prototypes available for testing with customers within the course of Q4. Roles and permissions improvements
  110. Asset Security - Authentication Problem • Need to secure access

    to intranet/gated/membership/paid assets, and other forms of protected assets • Customers need to comply with regulation / legislation requirements Benefits • Enable new uses cases that allow Contentful to manage and deliver sensitive content • Enable customers to comply with specific governance / regulatory / legislative requirements Next Milestone • Researching and validating possible solutions with customers through Q4 • Propose a solution for Milestone 2 - Asset Authentication to implement Q1 and onwards
  111. The leading content infrastructure for digital teams Customers Partners Investors

    ($78M) >240 employees in Berlin and San Francisco Team 183 +1,000 other customers Technology Partners
  112. Contentful lets you build digital products, fast 184 APIs JSON

    Structured content Reuse and repurpose content, independent of channel or language Composable stack, connected to other platforms, at cloud scale Integrate with digital delivery workflows for launch & optimization Decoupled architecture Agile workflows
  113. So What’s Next? Keep Learning • Developer Certification Program •

    Documentation • Developer Portal • Join our Meetups & Webinars (Gatsby,..) Keep track of new things • Changelog • What’s New Enjoy building with Contentful!
  114. • Adding comments to content for collaboration • Assigning tasks

    to content • Ability for editorial teams to define their own workflow from content creation until its publication Content workflows
  115. Asset Security Milestone 1 - Asset States Est. delivery: EOM

    12/2019 Milestone 2 - Asset States Milestone 3 - Asset Authentication Milestone 4 - To be determined
  116. • Practitioner access for environments: Roles & permissions and content

    creation flows for environments • Space backups: offer options to backup spaces to enable disaster recovery for customers • Developer tooling: support of more advanced developer workflows Developer workflows
  117. • SSO groups provisioning: support user (de)provisioning by enabling user

    roles/permissions via SSO/IDP • Usage reporting enhancements: add support for GraphQL usage reporting and asset bandwidth historical view Org management