1 of 47

2 of 47

Iris Ibekwe & Kevin Walsh

Component-driven Content Strategy�for doctorswithoutborders.org

3 of 47

A bit about MSF

4 of 47

“Our mission is to provide lifesaving medical care to those most in need.”

5 of 47

Business goals for www.doctorswithoutborders.org

  1. Fundraising
  2. Recruiting (esp. medical staff)
  3. Bear witness (“Temoignage”)

6 of 47

  • Various MSF sections have been using Drupal for many years, including a D7 distribution used by many national chapters
  • In 2016 the team at msf.org.uk led the design of a new design system, implemented in a D7 site

7 of 47

  • In early 2018 MSF USA engaged CivicActions to lead the development of its Drupal 8 site, using the new design system
  • Project started after MSF Visual Designers produced 15+ high fidelity designs.
  • Schedule of 10 sprints, about 20 weeks for D8 release.
  • Still working to add new features.

8 of 47

Why component-driven?

9 of 47

Why component driven?

Agile

Development can happen one slice at a time.

10 of 47

Why component driven?

Lean, Flexible Code

Reduces complexity and encourage re-usability. Components can be plugged into different frontend frameworks which are typically modular by design.

​

11 of 47

Why component driven?

Consistent Branding

Works better with modern design systems to create cohesive, consistent experiences.

12 of 47

Why component driven?

Separation of concerns

Helps enforce a separation between the presentation layer and the content.

13 of 47

Why component driven?

Best Practices

Helps enforce code quality and site-wide best practices eg. optimizing for accessibility.

14 of 47

Why component driven?

Improve Velocity

The UX-design-developer cycle works hand-in-hand and encourages a shared vocabulary

​

​

​

15 of 47

A Lean, Mean Content Model

16 of 47

One of our main business goals was to empower content creators to unleash their story-telling powers

Agile content strategy

17 of 47

So where to start?

Agile content strategy

Lean, Mean Content Model

18 of 47

Agile content strategy

Small is beautiful.

Lean, Mean and Elegant.

19 of 47

Agile content strategy

Small along two axes

  1. Smaller model�2) Keep the individual parts of the model small

20 of 47

Agile content strategy

​

Don’t build this

​

21 of 47

Agile content strategy

​

DRY (Don’t repeat yourself)

If you see the same set of attributes in more than one place, it’s a good sign that that overlap can be considered its own “thing”. �Look for reusable chunks of content.

22 of 47

Smaller bundles

(Block types, paragraph types, etc)

Less bundles

using form and view modes

in Drupal to group attributes

Big, overlapping bundles

that are expensive to maintain

23 of 47

Higher level, “stand-alone” content - Node types, Vocabularies, Stand-alone Media

Lower level content entities

Node type 1

Node type 2

Node type N

Vocab 1

Vocab 2

Vocab N

Custom entity type 1

Custom entity type 2

Custom entity type N

Paragraph type 1

Paragraph type 2

Paragraph type N

Custom block type 1

Custom block type 2

Custom block type N

24 of 47

Agile content strategy

​

25 of 47

You’re going to get

the content model

wrong the first time.

Agile content strategy

26 of 47

Fail Fast...

Know that at some point you will refactor your content model. Make sure your design & development process can handle it, and surface those problems ASAP.

Agile content strategy

27 of 47

You want to learn from your CMS users. �Take a human-centered approach to designing an editorial experience, and build feedback loops to the content model.

Agile content strategy

28 of 47

For www.doctorswithoutborders.org, we defined an MVP hypothesis around a lean content model, to be tested after 3 sprints, around a component-driven content model and its associated authoring and editorial experience.

​

The Minimum Viable Content Model

29 of 47

The Minimum Viable Content Model

We used the 80%/20% rule by building out 80% of our content model quickly, in a way designed to get the maximum feedback.

​

30 of 47

Higher level, “stand-alone” content - Node types, Vocabularies, Stand-alone Media

Lower level content entities

Node type 1

Node type 2

Node type N

Vocab 1

Vocab 2

Vocab N

Custom entity type 1

Custom entity type 2

Custom entity type N

Paragraph type 1

Paragraph type 2

Paragraph type N

Custom block type 1

Custom block type 2

Custom block type N

31 of 47

32 of 47

​

D7

D8

Node types

16

11

Taxonomy vocabularies

15

0

Field Collections (d7) →

Paragraphs & custom block types (d8)

15

28

Fields

187

100

Fields on nodes

150

20

Fields on field collections/paragraphs

20

43

33 of 47

Building with Components

34 of 47

The typical project is built to fit a rigid set of requirements, one feature at a time.

Source: Atomic Design by Brad Frost (http://atomicdesign.bradfrost.com/chapter-4/ )

35 of 47

Using components, we introduce flexibility and expand the scope of items that can be built from the same set of tools

Source: Atomic Design by Brad Frost (http://atomicdesign.bradfrost.com/chapter-4/ )

36 of 47

Structured Components

37 of 47

The Hero Components

​

Reusing one component with different variations.

​

​

38 of 47

The Address Component

​

39 of 47

Other components

​

40 of 47

Expanding possibilities

​

41 of 47

By creating flexible components we empowered Editors by giving them tools to create a rich story-telling experience.

42 of 47

The initial design for the FAQ page was supposed to restrict all FAQ’s to a couple of pages

43 of 47

Component-driven content strategy supports an agile development process

44 of 47

Iris Ibekwe

FrontEnd Practice Lead

Github: iris-i

Drupal.org: irisibk

​

Kevin Walsh

UX Lead & Drupal engineer

Github: kevwalsh�Twitter: @kev_walsh

Drupal.org: kevinwalsh

​

​

Thank you!

45 of 47

Join us for

contribution opportunities

Friday, April 12, 2019

9:00-18:00

Room: 602

Mentored

Contribution

First Time

Contributor Workshop

General

Contribution

#DrupalContributions

9:00-12:00

Room: 606

9:00-18:00

Room: 6A

46 of 47

What did you think?

Evaluations please!

https://events.drupal.org/seattle2019/sessions/component-driven-content-strategy-doctorswithoutbordersorg

Take the Survey!

https://www.surveymonkey.com/r/DrupalConSeattle

47 of 47

Our Component-driven approach: �1) content strategy �2) development