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

Contentful Partner Training - June 2019

Contentful Partner Training - June 2019

Contentful Webinars

June 17, 2019
Tweet

More Decks by Contentful Webinars

Other Decks in Technology

Transcript

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

    Kate Kotula, Strategic Partner Manager Kristin Brown, Head of Partnerships EMEA Thorunn Devoy, Partner Development Manager Stefan Severovic, Enterprise Account Executive
  2. Contentful Overview Content infrastructure enables digital teams to power content

    in modern websites, apps, and devices 2 Jim Ambras, Sr. Technical Trainer
  3. 3 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 8 Now, all companies are digital product companies
  5. CMSes slow down modern digital teams 9 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 10 Customization Interoperability Cloud-based stacks MICROSERVICES
  7. Our vision: stacks beat suites 11 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 12 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. Enterprises are replatforming on Contentful 14 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
  10. 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
  11. 16 Any channel, anywhere No matter where your customers are:

    mobile or web, online or onsite, all around the world Mobile Apps 2x quicker app load times Cross-Channel Experiences 4x faster to launch new onsite/offline and online experiences 98% reduction in time to launch new pages across multiple geographies Global Localization
  12. User-generated content Static sites that regenerate extremely frequently WYSIWIG author

    experience Countries that censor content “Keep in Mind” – Use Cases
  13. Speed and velocity Enabling Content Operations at scale Building engaging,

    cutting edge applications Enabling the digital transformation journey “Be Excited” – Use Cases
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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 25
  19. 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
  20. 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.
  21. 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
  22. 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
  23. 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)
  24. Pros • Simple • Reactive – no stale data •

    Fully leverages the Contentful CDN Cons • SEO support requires more effort • Possible browser compatibility issues Dynamic on Device
  25. 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 • • •
  26. 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)
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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!" } } }
  34. 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!" } } }
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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)
  45. 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
  46. • 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
  47. 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 } } }
  48. 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)" },
  49. 70 1. Core content modeling concepts 2. Reusable content and

    “assemblies” 3. Inheritance and metadata 4. EXAMPLE: Content modeling for localization Topics
  50. 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 72
  51. 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 73
  52. 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 75
  53. Shared + independent fields 82 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
  54. 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) 84
  55. The field Localized is an array that contains an entry

    for each locale Entry level localization - two content types 85 1 2
  56. 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 89
  57. • 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?
  58. 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
  59. • 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?
  60. 108 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
  61. 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.
  62. • 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
  63. 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.
  64. 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.
  65. 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
  66. 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
  67. • 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
  68. FF = Future Feature • Go to Web App >

    Settings > Environments to clone Master. • Master is always considered Prod and cannot be deleted. • Merging the changes back to Master needs to be done by Contentful CLI/Scripts. (FF) • Other environments cannot be promoted to Prod. (FF) Environments Best Practices
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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!
  75. 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
  76. 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
  77. 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
  78. 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 + +
  79. 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
  80. 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
  81. 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/
  82. 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
  83. 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
  84. 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
  85. 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
  86. Users Description Quantity Unit price Amount Included users 10 Included

    $0 Additional users 0 $x / user $0 Annual fee 10 $0
  87. 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
  88. 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
  89. Recent Releases Practitioners Developers Create & Manage Build & Deliver

    • GraphQL API (G.A.) • Branching from sandbox environments • Dialogs in UI extensions • Custom sidebar • Forma36: Design system • Rich Text (G.A.) • Getting started for practitioners ◦ Guided UI walkthrough ◦ Space home with concepts video Admin & Scale • Roles & Permissions for Teams • User Management API • Multi-region delivery infrastructure • ISO 27001 Cerfification
  90. • Schedule publishing of individual entries • Content to exist

    in different versions so it can be published at different times • Ability to bundle a set of content entries and assets into releases which can be operated on directly Scheduling, versions and releases
  91. • 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
  92. • Releasing an app which integrates with Optimizely to easily

    map variations of content to experiments • Releasing an app which integrates with Google Analytics to bring metrics into the editorial context Apps: Experimentation and Analytics
  93. • Moving apps alpha into beta. Beta apps will have

    a complete feature set to be installed and used in the Contentful web app Apps: Beta
  94. • Easier recovery from failed releases or migrations by allowing

    to promote any given environment to the master environment Environment promotion
  95. Practitioners Developers Build & Deliver Environments and developer workflows Integrations

    for Marketing Use Cases Collaboration Teams Roles & Permissions Content Automation Scheduled Publishing Content versions and releases Create & Manage Admin & Scale Q2 Q3 Q4 Content workflows Compliance ISO 27001 Apps: Experimentation and Analytics Apps Beta Environment Promotion
  96. The leading content infrastructure for digital teams Customers Partners Investors

    ($78M) >240 employees in Berlin and San Francisco Team 157 +1,000 other customers Technology Partners
  97. 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!