Drupal Usergroup Switzerland
Let's build 12 Websites with the same Backend
www.gaultmillau.ch
www.beobachter.ch
www.handelszeitung.ch
www.bilanz.ch
React
Apollo
Redux
Drupal
GraphQL
Hint: SWAPI REST vs SWAPI GraphQL
query {
route(path: "/node/1") {
entity {
entityLabel
entityType
entityId
entityOwner {
entityBundle
entityChanged
entityCreated
entityId
entityLabel
entityType
entityPublished
entityUuid
}
entityLanguage {
id
}
}
}
}
{
"data": {
"route": {
"entity": {
"entityLabel": "Hello Drupal UserGroup",
"entityType": "node",
"entityId": "1",
"entityOwner": {
"entityBundle": "user",
"entityChanged": "2018-01-18T14:49:52+0000",
"entityCreated": "2018-01-18T14:49:52+0000",
"entityId": "1",
"entityLabel": "admin",
"entityType": "user",
"entityPublished": false,
"entityUuid": "60bbb1a1-df11-429f-b969-71738c620944"
},
"entityLanguage": {
"id": "en"
}
}
}
}
}
React: Frontend Library
Apollo: GraphQL Client
Redux: Predictable state container
SEO! Accessibility!
Hint: prod site isomorphic
Performance!
Hint: prod site map & footer
https://github.com/drupal-graphql/drupal-decoupled-app
Hint: local decoupled app