← → to navigate · N for notes · F for fullscreen

Pacific Northwest Drupal Summit · October 17, 2026

Building the Chat Layer for Drupal Groups (and Beyond)

John Locke · Freelock

Thank you to our sponsors

Thank you to the Summit sponsors: Acquia, Slalom, Diffy, Tag1, imageX, MindSing, Affinity Bridge, Morrison Multimedia, Sandstorm, Blue Drop, Woolwich Web Works, and Tugboat.

0–4 minutes / opening · John Locke · PNW Drupal Summit

You have been assigned to communications testing

Create your account while we get underway.

www.drupal-matrix.dev/user/register

Three tasks. No lab coat required. Participate or just observe.

Groups Initiative context

Scan to register

Different spacecraft. Shared history.

A homeserver per arklet

Conversation with Matthew Hodgson · May 29, 2016

John compares Matrix homeservers to Seveneves arklets. Matthew replies “hell yeah :D” and describes resyncing history when spacecraft rejoin, and reading newly synced scrollback.

The original conversation ↗

4–6 minutes / the missing return path

Notifications aren’t a conversation.

Drupal ⇄ Matrix

Content + community ⇄ conversation + federation

Basic sync → Identity → Application service → Entity mapping

6–14 minutes / basic sync · activity 1

Publish a node. Bring the reply back.

Drupal node → Matrix message → Matrix reply → Drupal threaded comment

“We received your distress call. Why is it dated tomorrow?”

Continue someone else’s story in one or two sentences.

Open the transmission ↗

14–20 minutes / identity

Who actually said that?

  1. Sign into Matrix using Drupal credentials.
  2. See the linked account on the Drupal profile.
  3. See a Matrix reply attributed to the Drupal username.

20–27 minutes / application service · activity 2

A linked identity. A place in the fleet.

Room + user namespaces → rooms inside a space → live posting rights

Read-only → link account → allowed to post

Introduce yourself and propose one rule for the fleet.

Join the fleet ↗

27–32 minutes / entity mapping

Where does the conversation live?

A dedicated map service—not fields required on every entity type.

  • Group ⇄ Space / room
  • Node ⇄ Space / room / thread
  • Comment ⇄ Event, with or without thread structure

32–36 minutes / reading experience · activity 3

Would you move your family into this?

Read two critiques. Reply to one. Revisit the first.

ACT: fetch on demand · fetch ahead · show bodies upfront

Open the design review ↗ · Optional loading comparison ↗

Concept habitat design for critique

36–39 minutes / internal Matrix case study

Connected doesn’t mean solved.

  • Can you find this thread six months later?
  • Which discussions deserve their own room?
  • Useful automation—or somebody else’s noise?

39–40 minutes / not done yet

A shared conversation. Not yet every feature.

  • Reactions
  • Widgets
  • Polls, spoilers, and other Element features

40–45 minutes / beyond Groups · discussion

Where would your community take this?

Built for Drupal Groups first.
The pattern goes beyond Groups—and Drupal.

www.drupal-matrix.dev

Groups Initiative context ↗ · Matrix API ↗ · ACT ↗