Writing
Articles about topics at the intersections of content, design, and code, including content architectures, content design, and content strategy.
Articles
Universal CMS: Universally editable for any technology and any channel
May 23, 2024
A quickstart guide to the dotCMS Universal Visual Editor with Next.js
May 14, 2024
Universal CMS: The death of "pure" headless CMS
March 19, 2024
Seven years of Decoupled Days, the non-profit headless content and commerce conference
March 4, 2024
How to diagram circulation through three-dimensional spaces for immersive content
April 18, 2023
How to storyboard immersive content for three-dimensional spaces
March 15, 2023
Content in space: Introducing Immersive Content and Usability from A Book Apart
March 9, 2023
Behind the scenes of my newest book Voice Content and Usability, A Book Apart’s first voice title
August 24, 2021
Personality for voice interfaces: Humanizing the most human of user experiences
June 22, 2021
How to query data with GraphQL in Oracle Content Management
June 9, 2021
How to classify interactions for conversational interfaces
June 8, 2021
Register, diglossia, and why it's important to distinguish spoken from written conversational interfaces
June 2, 2021
How we integrated Alexa with Drupal for Ask GeorgiaGov, the first voice interface for residents of Georgia
May 26, 2021
Can voice assistants displace screen readers?
May 19, 2021
Proudly routed elsewhere: The decline of upstream URL management in CMS
May 18, 2021
Building a blog with Create React App and headless Oracle Content Management
May 14, 2021
Conversational maxims and the cooperative principle in voice interface design
May 11, 2021
Can your content speak for itself? Introducing Voice Content and Usability from A Book Apart
May 5, 2021
Digital experience orchestration and the problem of headless CMS preview
April 28, 2021
No persona left behind: The emerging schism in content management systems
April 29, 2020
JavaScript is now the de facto language of experiences beyond the web
April 22, 2020
The distributed CMS and microfrontends
April 20, 2020
Voice interface design is about good writing, not just good design
April 16, 2020
Why the post-CMS era is not here
April 7, 2020
A quickstart guide to Oracle Content and Experience as a headless CMS for developers
April 3, 2020
The real-time CMS: How WebRTC, the browser-based RTC protocol, can reinvent CMS collaboration
March 5, 2020
Affordance and wayfinding in voice interface design
March 3, 2020
Axes of preview beyond the static web: Fidelity, quality, and governance
February 14, 2020
Como a separação de preocupações nos sistemas de gerenciamento de conteúdo está mudando
February 10, 2020
Hierarchies of needs in CMS and digital experience management
February 7, 2020
Off to the digital experience races: The second CMS war is officially here
February 4, 2020
O CMS distribuído: Como o fim de jogo do CMS desacoplado impactará a sua organização
January 29, 2020
Consuming content from multiple CMSs with Gatsby
January 17, 2020
How the separation of concerns in content management systems is shifting
January 14, 2020
The distributed CMS: How the decoupled CMS endgame will impact your organization
June 6, 2019
Building usable conversations: The story of Ask GeorgiaGov
February 28, 2019
Building usable conversations: Conversational usability testing
February 13, 2019
Building usable conversations: Conversational content strategy
February 11, 2019
Building usable conversations: Effective conversational design
January 31, 2019
Building usable conversations: Conversational information architecture
January 28, 2019
Building usable conversations: How to approach conversational interfaces
January 18, 2019
Decoupled Drupal authentication with JSON Web Tokens
December 10, 2018
GraphQL in Drupal: An exclusive excerpt from the forthcoming book, Decoupled Drupal in Practice
October 18, 2018
Decoupled Drupal authentication with OAuth 2.0
October 11, 2018
Experience Express in Lisbon: Forging the future of Drupal architectures and initiatives at Drupal Developer Days
July 12, 2018
Experience Express in Utrecht: Conversational design and modern front-end approaches at Frontend United
July 10, 2018
Experience Express in Alicante: Analytics, security, and horizons at DrupalCamp Spain
June 27, 2018
Decoupling Drupal 8 with JSON API
May 15, 2018
Experience Express in Philadelphia: Promoting Drupal at Drupaldelphia
May 1, 2018
Decoupling Drupal 8 core: Retrieving and manipulating content with core REST
April 26, 2018
Experience Express in Darmstadt: Celebrating Drupal 8's most important release yet
April 20, 2018
Experience Express in Nashville: Decoupled in the spotlight at DrupalCon
April 18, 2018
Decoupling Drupal 8 core: Core REST, HAL, and setting up Drupal as a web services provider
March 29, 2018
Experience Express in Austin: Decentralizing the web at SXSW Interactive
March 22, 2018
Decoupling Drupal 8 core: Web services in core and the Serialization module
March 20, 2018
Experience Express in Chicago: Inclusion and Drupal 8 in the spotlight at MidCamp
March 16, 2018
The channel explosion: Off screens and out the window
March 6, 2018
The web is changing: Introducing Experience Express
March 1, 2018
Decoupling Drupal with Waterwheel for Ember and React
June 26, 2017
Introducing Reservoir, a distribution for decoupling Drupal
June 19, 2017
ES6 for Drupal developers: Arrow functions, concise methods, and other syntactic features
April 17, 2017
ES6 for Drupal developers: ES6 modules, classes, and promises
April 12, 2017
ES6 for Drupal developers: Spread, default values, and destructuring
March 17, 2017
ES6 for Drupal developers: Getting started with ES6
March 15, 2017
Decoupled Drupal with Ember: Consuming Drupal with Ember adapters and models
December 21, 2016
Decoupling Drupal with Ember: Introducing Ember and JSON API
December 14, 2016
Retrieving and manipulating content with Waterwheel.js
October 4, 2016
Getting started with Waterwheel.js and resource discovery
September 30, 2016
Waterwheel, the Drupal SDK ecosystem
August 29, 2016
Progressively decoupled Drupal approaches
August 22, 2016
The risks and rewards of fully decoupling Drupal
June 16, 2016