Member Chat & Community Rooms

A membership site feels very different when the conversation stays inside the experience instead of being pushed out to email threads, private Slack groups, or random comment sections. Member Chat brings that conversation into BricksMembers with room-based chat that feels native to the site you are already building.

It is designed for the real situations membership site owners run into every week: a shared community lounge, a private cohort room, a course-specific discussion area, or a small topic channel for people who need to collaborate around one post, one lesson, or one group.

What Member Chat Actually Gives You

Member Chat adds room-based discussions to BricksMembers. Rooms can be global, group-based, or topic-based, and the feed is rendered directly through Bricks so the chat UI matches the rest of your site instead of feeling bolted on.

  • Global rooms for site-wide community spaces
  • Primary group rooms that are created automatically for BRM Groups
  • Topic rooms for narrower conversations around a group or a global audience
  • Unread tracking so members can see where conversation moved
  • Read/write policies based on BRM levels, linked posts, and group membership
  • Bricks-native presentation so your chat feed can inherit your layout, typography, and branding

How Rooms Work

The easiest way to think about Member Chat is that a room is a permission-aware place where messages live. The room decides who can see the conversation, who can write into it, and whether it belongs to everyone or to a specific group.

  • Global rooms are available across the site. They are a good fit for general community discussion, announcements, or support-style conversations.
  • Group rooms belong to a BRM Group. When Member Chat and Groups are both enabled, each group gets one primary room automatically.
  • Topic rooms are additional focused channels. These can be global or tied to a group.

That means you can start simple with one community room, then grow into cohort chats, mastermind rooms, accountability channels, or lesson-specific discussions without changing the overall system.

Enable the Module

  1. Go to BricksMembers → Modules
  2. Turn on Member Chat and confirm the change
  3. Open BricksMembers → Member Chat

Once the module is enabled, the Member Chat page is available in the BricksMembers sidebar.

Set Up Your First Room

The Member Chat admin page has two main jobs: global settings and room management.

For a first setup, most site owners start with one global room:

  1. Go to BricksMembers → Member Chat
  2. Open the Rooms tab
  3. Create a room name such as “Community Lounge” or “Member Hub”
  4. Choose whether it should be a standard room or a topic room
  5. Optionally limit reading or writing by BRM level
  6. Optionally link the room to a post if access should follow that content

You can also tune the module defaults here, including poll interval, default message limit, maximum message length, and which member levels are allowed to create topic rooms.

Real-Time Updates

By default, Member Chat uses polling to check for new messages at a configurable interval. If you want instant delivery, you can connect a real-time provider instead. The settings page has a Realtime Provider dropdown directly in the settings area. Choose Pusher or Ably and fill in the credential fields that appear right below the dropdown (App ID, Key, Secret, and Cluster for Pusher; Key for Ably). If you leave the provider set to “None (polling only)”, the chat works fine using server-side polling at whatever interval you configure.

What Happens with Groups

This is one of the nicest parts of the system: if you already use BRM Groups, Member Chat does not ask you to rebuild that logic again.

When a group is created, BricksMembers creates that group’s primary chat room automatically. When members are added or removed, the room membership is kept in sync. When a group is archived, its chat rooms are archived too.

So a cohort owner can create a group, invite members, and immediately have a private room for that cohort without any extra setup. That is especially useful for bootcamps, classes, client teams, and internal training programs.

Building the Chat UI in Bricks

Member Chat ships with three nestable Bricks elements that you can mix and match depending on the layout you want:

  • BRM Chat Feed renders the message feed for a room. Drop child elements inside to design your own message rows using dynamic tags.
  • BRM Chat Room List loops over every room the current user can access and renders your child layout once per room, so you can build a room sidebar or switcher with exactly the design you want.
  • BRM Chat Input renders the composer form for sending messages. It provides the textarea and you add your own send button and optional topic creator buttons as child elements.

All three elements are nestable, which means you place child elements inside them in the Bricks structure panel and design each piece visually. There is no fixed HTML template you are stuck with.

If you place a Chat Feed, a Chat Room List, and a Chat Input on the same page and give them the same Chat Group Key, they behave as one connected chat interface. When a member clicks a room in the list, the feed and input switch to that room automatically.

The Send Button and Other Chat Buttons

Member Chat does not render built-in buttons. Instead, you add regular Bricks Button elements as children of the Chat Input and assign them a role through a simple dropdown.

When the Member Chat module is active, every Bricks Button element gets a new BRM Chat section in its content settings with a Chat Action dropdown. The available actions are:

  • Send Message — sends the message in the textarea. A Chat Group Key field appears so you can match it to the correct Chat Input.
  • Toggle Topic Creator — shows or hides the topic creation form.
  • Submit Topic — submits the new topic form.
  • Cancel Topic — hides the topic creation form without submitting.

This means you have full control over button placement, labels, icons, and styling. You can put the send button to the right of the textarea, below it, or anywhere else in your layout. You style it exactly like any other Bricks button.

Even if there is no send button on the page, members can still send messages by pressing Enter on the keyboard. Pressing Shift + Enter inserts a line break instead.

Designing Message Rows

Because the Chat Feed is nestable, you design each message row using regular Bricks elements. A typical setup might include an image element for the avatar, a text element for the author name, another for the timestamp, and a basic text element for the message content.

The chat dynamic tags make this work. Inside a Chat Feed’s children, tags like {brm_chat:message_content}, {brm_chat:message_author_name}, and {brm_chat:message_created_at} resolve to the current message in the loop.

For avatar images, you do not need a separate chat-specific tag. The standard Bricks tag automatically resolves to the message author’s avatar when used inside a chat feed. The same goes for , , and other built-in user tags. Member Chat hooks into the Bricks rendering pipeline so those tags always point to the right person in each message row.

My Messages vs. Other People’s Messages

In most chat interfaces, your own messages look different from other people’s messages. Maybe yours are right-aligned with a blue background, while everyone else’s are left-aligned. Member Chat gives you two ways to handle this, controlled by the Message Layout Mode setting on the Chat Feed element.

Single Layout (the default) uses one child layout for all messages. Each message row that belongs to the current user automatically gets a brm-chat-feed__message-row--mine CSS class. You can use that class in your Bricks styles to right-align your messages, change the background color, or apply any other visual difference. This is the simplest approach and works well when the two message styles only differ in colors and positioning.

Separate Layouts lets you design two completely independent message structures. You place two Div elements as direct children of the Chat Feed, then set the Chat Layout Role on each one: one Div gets “My Messages Layout” and the other gets “Others Messages Layout”. The feed renders only the matching Div for each message, so you can use entirely different element hierarchies, different dynamic tags, or different visual structures for your own messages versus everyone else’s.

The Chat Layout Role dropdown appears on every Bricks Div element under the BRM Chat section in the content settings, just like the Chat Action dropdown appears on Button elements. You only need to set it on the two top-level Divs inside the Chat Feed when using Separate Layouts mode.

Both approaches keep the brm-chat-feed__message-row--mine class on the wrapper, so even in Separate Layouts mode you can still use CSS selectors if you want additional fine-tuning.

Using Conditions in Messages

Bricks conditions let you show or hide parts of your chat layout depending on the current message or room state. For example, you might want to show an “edited” indicator only on messages that have been modified, or show edit and delete buttons only on your own messages.

The chat conditions you can use inside message rows include:

  • Chat message is mine — useful for styling your own messages differently or showing edit/delete buttons only on your posts
  • Chat message is edited — show an “edited” label next to messages that have been changed
  • Chat message is deleted — display a placeholder like “This message was removed” instead of the original content
  • Chat message can manage — show moderation tools for users who have permission to edit or delete a particular message

Room-level conditions also work at the page or section level:

  • Chat has current room — check whether a room context exists at all
  • Chat can write — show or hide input areas based on write permissions
  • Chat room scope — differentiate styling between global and group rooms
  • Chat unread count — show notification badges when unread messages are above a threshold

You will find all chat conditions under the BRM: Chat group in the Bricks condition dropdown, and chat dynamic tags under BRM: Chat in the dynamic tag picker.

Designing the Room List

The Chat Room List element works like a visual loop. You design one “room item” layout with child elements, and that layout is repeated for every room the member can access. Inside those children, tags like {brm_chat:room_name}, {brm_chat:room_unread_count}, and {brm_chat:room_kind} resolve to each room in turn.

The active room gets an extra CSS class (brm-chat-room-list__item--active) so you can highlight the selected room with your own styles. Clicking a room item automatically switches the Chat Feed and Chat Input to that room, as long as they share the same Chat Group Key.

Room items are keyboard-accessible. Members can tab through the list and press Enter or Space to switch rooms.

Putting It All Together

A typical chat page layout in Bricks might look something like this in the structure panel:

  • Section (your page wrapper)
    • Container with a two-column layout
      • BRM Chat Room List (sidebar column)
        • Div — room item with room name and unread badge
      • BRM Chat Feed (main column)
        • Div — message bubble with avatar, name, timestamp, and content
    • BRM Chat Input (below the feed)
      • Div — textarea slot (with data-brm-chat-textarea-slot)
      • Button — Chat Action set to “Send Message”

Give all three elements the same Chat Group Key (the default is “default”) and they will work together automatically. The Room List switches the Feed and Input when a room is clicked. The Input sends messages to whatever room the Feed is currently showing.

Who Can Read and Who Can Write?

Member Chat separates room access from room activity.

  • Read access can follow group membership, linked-post access, and optional read levels
  • Write access can be more open or more restrictive, depending on your write-level rules
  • Admins can always manage rooms and moderate messages

That makes read-only rooms possible. For example, you might allow all members in a room but only let certain levels or group leaders post. In that case the chat feed still appears, but the chat input shows a read-only notice instead of the composer.

Creating Topic Rooms

Topic rooms are for conversations that deserve their own space but do not need an entirely separate system. Administrators can always create them. You can also allow specific BRM levels to create topics from the chat settings page.

To enable topic creation from the frontend, turn on Show Topic Creator in the Chat Input element settings. This renders a hidden topic creation form with a name field and an optional linked-post search. The form itself has no built-in buttons — you add Bricks Button elements and assign them the appropriate Chat Actions:

  • A button with Toggle Topic Creator to show and hide the form
  • A button with Submit Topic to create the topic
  • A button with Cancel Topic to dismiss the form

Members who have the right level see the toggle button and can give the topic a name and optionally link it to a post on the site. That makes it easy to create a discussion thread around a specific lesson, article, or resource.

Available Dynamic Tags

Here is the full list of chat dynamic tags you can use inside your Bricks layouts. All of these appear under the BRM: Chat group in the dynamic tag picker.

Room tags (resolve inside Chat Feed, Chat Room List, or any context with an active room):

  • {brm_chat:room_id}, {brm_chat:room_name}, {brm_chat:room_description}
  • {brm_chat:room_scope}, {brm_chat:room_kind}
  • {brm_chat:room_unread_count}, {brm_chat:room_member_count}, {brm_chat:room_can_write}

Message tags (resolve inside Chat Feed message rows):

  • {brm_chat:message_id}, {brm_chat:message_content}
  • {brm_chat:message_author_id}, {brm_chat:message_author_name}, {brm_chat:message_author_login}
  • {brm_chat:message_author_first_name}, {brm_chat:message_author_last_name}, {brm_chat:message_author_nickname}, {brm_chat:message_author_email}
  • {brm_chat:message_created_at}, {brm_chat:message_edited_at}, {brm_chat:message_status}
  • {brm_chat:message_is_mine}, {brm_chat:message_is_edited}, {brm_chat:message_is_deleted}, {brm_chat:message_can_manage}

Built-in Bricks user tags (automatically resolve to the message author inside chat feeds):

  • for the author’s avatar image
  • , , , and other standard Bricks user tags

Good Real-World Uses

  • Course communities with one public member lounge plus course-specific topic rooms
  • Cohort programs where every group gets its own private room automatically
  • Team licenses where each client team gets a private discussion space
  • High-ticket memberships where only premium levels can write while other members can still read
  • Lesson or post discussions tied to a linked post so the room follows access to that content

A Few Practical Notes

  • Version 1 keeps messages as plain text, which keeps the feature safer and easier to moderate.
  • The chat feed refreshes through server-rendered Bricks HTML, so what members see after polling matches the original render path exactly.
  • Unread tracking is handled automatically when members open a room or return to a visible feed.
  • Global rooms do not need to be manually pre-populated with every possible member just to work.
  • All three chat elements are nestable, so you design the layout with regular Bricks elements instead of being locked into a fixed HTML structure.
  • All buttons (send, topic toggle, topic submit, topic cancel) are regular Bricks Button elements you place and style yourself. There are no hidden built-in buttons.
  • The Enter key sends messages even without a visible send button, so minimal layouts work out of the box.

The Big Picture

Member Chat is not trying to turn BricksMembers into a social network. It is trying to solve a more practical problem: keeping the right conversations close to the content, the group, and the membership experience that already exists on your site.

For most membership sites, that is exactly the sweet spot. You get private rooms, group-aware discussion, unread tracking, and a frontend you can actually design in Bricks — without handing your community over to another platform.

Early Bird Deal

Start Building Your Membership Site Today

Create, sell, and manage your content without limits. BricksMembers gives you everything you need to build membership and LMS sites with Bricks Builder.

Lifetime updates & bug fixes • Premium support • 0% transaction fees • 60-day money-back guarantee