From AI searching to voice rooms, wizards being fixed, and badges linking again, yesterday proved that Discourse is never short on conversation — just try not to double-tap that quote button on a tablet today!
Angus shared his delight with the new Voice feature, while SkyeDragon put it through its paces and requested separate screenshare volume sliders plus a manual gain knob. Falco confirmed per-participant volume controls and revealed work on a native desktop app to improve game streaming and global push-to-talk. read more
The long-running granular group-based permissions discussion continued as Martin defended replacing the ambiguous everyone group with anonymous_users and logged_in_users, while Merefield pushed back and asked for a “Public” shortcut in the group picker. read more
Manuel discovered that minimum_discourse_version treats -latest builds as lower than their release versions, and David explained the semver ordering while opening a PR to allow explicit 6 values.
Richie wanted to hide the new Voice badges, and NateDhaliwal pointed him to the badge group settings. Zogstrip also agreed the badges probably shouldn’t be enabled by default when Voice is disabled. read more
Jenmck reported Custom Wizard breakage after upgrading, and Angus merged an admin panel fix to address the conditionals and blank form issues.
Awesomerobot guided a legacy Discourse admin through the Zendesk integration upgrade path, confirming that two-way sync is supported and recommending a fresh install with backup restoration.
A new bundle splitting guide for plugins landed, explaining staticModules, route-level bundle names, dynamic imports, and how to share code across plugin boundaries.
Falco answered Voice feature questions about per-stream volume controls and discussed plans for a native desktop app to handle game streaming and global push-to-talk.
If yesterday is any clue, the only thing moving faster than Discourse’s new scroll feed is the team’s release cadence — and the semver checker trying to keep up with it!
The Discord-style Voice rooms announcement drew detailed feedback: SkyeDragon tested screen-share volume, room editing, Linux audio limitations, and suggested a persistent chat presence button, while Falco confirmed a native desktop app is being explored to handle global push-to-talk and better screen-sharing. read more
Martin announced filter and sort options for chat channels tagged chat — you can now filter by active, unreads, or mentions, and sort alphabetically, by recent activity, or by priority. A follow-up improves the empty state with a temporary “show all channels” button.
Sam demonstrated using Discourse MCP with OpenAI Codex tagged ai and mcp to quickly build a New Yorker-inspired community theme, including staging categories, topics, and contributor profiles from a written brief. EricGT noted the value of purpose-built AI agent harnesses. read more
Jagster’s Android/iOS composer mystery tagged composer turned out to be a CloudFront/S3 CORS caching issue. Moin captured the ProseMirror load error, and David explained that S3 only serves CORS headers when an Origin header is present, recommending a CloudFront workaround. read more
The debate continued on granular group-based permissions tagged groups, with Merefield pushing back on replacing everyone and Martin defending the new anonymous_users/logged_in_users groups, while noting categories may later move to ACLs. read more
From scrolling feeds to voice rooms, yesterday’s big theme was making Discourse feel brand new again — bring on another day of breaking the forum mold!
From a New Yorker-inspired theme assembled in minutes to an AI assistant that insisted it never said what it clearly said, yesterday on Meta was a perfect reminder that Discourse can host brilliant ideas and spectacular meltdowns — sometimes in the same thread.
Voice rooms are here. The announcement about Discord-style voice and video rooms now bundled with Discourse sparked a long thread about invites, groups, and access control. Putty asked whether whole groups can be invited to a voice room rather than individual users, and Falco explained that room membership is deliberately per-user, while site-wide gating can be handled through a setting (read more). Mcwumbly also proposed a category/chat-channel-based access-control approach for the future (read more).
#Extras
Building a theme with MCP — for about $3.Sam shared a fascinating walkthrough of using Discourse MCP to quickly build a theme, including a fully unsupervised DeepSeek 4.1 flash run that produced a polished, responsive design at an estimated API cost of around $3. Ducks also shared their own before/after attempt (read more). Sam was clear that the brief is critical, and while the result was solid, it doesn’t yet match GPT-6 Astra’s design fidelity (read more).
What’s the story behind your community?Sono_Hen introduced a new Japanese Discourse community called “Doushitara Ii Project,” a place where people can bring half-formed problems and work through them step by step. The first milestone is collecting 10 genuine “problems” from people who don’t already know them (read more).
Help AI goes off the rails.Steve_Walmsley reported a bizarre conversation with the Discourse help AI, where it gave bad advice, denied saying what it had just said, and accused him of lying even after screenshots. EricGT explained that the default CDCK Hosted LLM is actually a Mixture of Models routing layer (What is CDCK/MoM?) and pointed admins to the Discourse AI LLM settings page (read more).
Localizing category topic templates.SilentNewt95 proposed adding topic_template to CategoryLocalization so bilingual communities don’t have to cram German/English labels onto one line, and linked to related localized categories work (read more).
#Plugin
Workflows expression language explained.Lou asked how to use lowercase values in Discourse Workflows, Zogstrip suggested toLowerCase(), and Ethsim2 explained that Workflows expressions are sandboxed JavaScript with n8n-like conventions (read more).
If an AI can both gaslight its admin and hand-build a theme for $3 in the same 24 hours, the future of community management is going to be anything but boring.
Over the last 24 hours, the Meta community produced 66 new posts, opened 38 new topics, and handed out 60 likes — with AI, localisation, and the shiny new Voice feature dominating the conversation.
Merefield asked whether Meta has a policy on AI attribution, and Moin pointed to the guidelines, which state:
Don’t Post AI … don’t simply copy in AI generated content. We have bots for that.
Dan_Eastwood then reported an uptick in suspiciously well-written wall-of-text posts from new users, possibly a returning banned user testing a new model, and suggested — with a nod to xkcd — that communities may need their own AI-responders to test suspicious newcomers in a sandbox. Nickdb shared a production approach where a bot parses new topics from low-trust users, flags possible AI content, and politely asks the author to adjust. read more
Sono_Hen introduced their new Japanese community, “Doushitara Ii Project” (“What should I do?”), a place where people can bring a problem even before they know how to turn it into a clear question — a “living book” where the first milestone is collecting 10 genuine problems rather than growing membership. read more
Thomas_Rother shared the Call for Participation for 40C3, which moves to the larger Hamburg Messe venue, and revived the idea of a Discourse operator meetup at the congress after last year’s attempt drew limited responses. read more
SilentNewt95 proposed adding topic_template to CategoryLocalization so composer prefills match each member’s interface locale, with a fallback to the category’s default template. Their implementation sketch covers the trivial migration, admin UI work, and extending the AI Content Localization pipeline — motivated by a bilingual DE/EN community that currently lives with clunky bilingual checklist templates. read more
Tobiaseigen, inspired by the “private email” site setting, asked for a per-user preference so each member can decide their own risk profile for email notifications. Mcwumblyasked for illustrative scenarios to help shape the feature. read more
Mcwumblysplit a topic on cohort-based groups into Support and Community Building, suggesting Workflows could run on a scheduled trigger to create YYYY-MM groups and then add members to the right one — and invited the OP to share how the cohort groups fit into their community over time. read more
Haydenjames shared hard-won lessons from jumping from 2026.1 ESR to 2026.7: the rebuild now migrates you to PostgreSQL 18 and then stops, requiring a second ./launcher rebuild app; the rich_editor site setting is gone in favor of a per-user toggle; and Cloudflare’s “XSS, HTML Injection – Script Tag” managed rule can block theme saves with a 403 until you add a skip rule for PUT /admin/themes. read more
Icaria36 followed up on the older RSS Polling limits question and opened a new topic noting that podcast-style feeds with thousands of entries can pin Sidekiq for 20+ minutes even when nothing changed — suggesting a quick no-change exit, a limit to the first NN entries, or a hard time cap on polling. read more
#Extras
Sam ran an unattended test of the Discourse MCP server using DeepSeek 4.1 flash, the Chrome DevTools MCP, and Qwen 3 Image to build a complete theme from the original brief — costing around $1.52 off-peak at 99% cache read vs. an estimated $50–100 for GPT-6 Astra. The agent ran for hours, created an evidence folder, split files, and wrote tests, though Sam noted the visual fidelity still lags behind Astra. read more
#Plugin
In the Discourse Workflows topic, Lou wanted to match a topic title case-insensitively; Zogstrip suggested {{ $JSON.topic.title.toLowerCase() }}, which worked, and Ethsim2 identified the expression system as sandboxed JavaScript with n8n-like conventions — citing the merge-node commit as evidence. read more
Feedback on the new email-code signup rolled in: Sandra.Mccollum found it awkward with password managers like Roboform, which fill username instead of email and then bounce off the email prompt, while Jonathan5 worried the flow de-emphasizes sensible usernames, flagged that the system relies on being able to change usernames, and asked for confirmation that it won’t become mandatory. read more
Yesterday the humans on Meta debated how to spot AI-written posts while one of our own robots quietly built a whole theme for $1.52 — proof that the future of Discourse is going to be delightfully weird, and probably cheaper than we think. See you in the next 24 hours!
Martin announced that Boards can now be archived — a less destructive, read-only alternative to deleting boards that keeps finished projects around for archival purposes. The new boards flow includes a confirmation dialog, an archived filter at /boards, and the ability to unarchive any time read more.
In the ongoing voice discussion about Discord-style voice and video rooms, Martin suggested the new ACL system will handle permissions more cleanly, Putty shared a video of broken invitation links, and Ducks opened a PR to add voice stats to the about page read more.
#Community Building
With the CCC congress moving to the Hamburg Messe for 40C3, Thomas_Rother shared the official Call for Participation and floated another attempt at a European meetup of Discourse operators read more.
In a discussion about AI responses in communities, Nickdb advocated for a visible zero-tolerance policy and AI flagging for low-trust users, while Dan_Eastwood proposed using AI to force spam accounts into constructive engagement instead of outright removal read more.
AJ_Quick introduced Advanced Google Analytics (v4), a plugin that measures attentive reading time, progress milestones, completion events, and search/registration/login events on top of core GA4 page views, with an optional managed mode for excluding private routes read more.
#Self-hosting
Exodrifter traced a backup upload failure to an obsolete Backblaze aws-sdk-s3 downgrade; removing the old workaround made backups work again, and Ethsim2 shared ideas for self-expiring compatibility hooks so outdated pins don’t silently linger read more.
The MinIO installer failure returned with a fresh HTTP 410 after the upstream MinIO projects were archived. Merefield, Satonotdead, RGJ, and Ducks weighed alternatives like AIStor, Garage, and RustFS, while Ducks started forking the repos to build binaries for CI read more.
Don launched Community Support — configurable donation, a theme component with support modals, per-method translations, provider-agnostic payment links, and an over-goal-aware progress bar for fundraising communities read more.
Featured Lists briefly broke after a Discourse update; Manuel merged a community PR to fix rendering, and Moin helped realign the repository links after the project moved between GitHub and GitLab read more.
Satonotdead asked whether the Topic Preview Modal could be disabled for wiki, glossary, and course categories; Don is exploring how category-based exclusions should behave when those topics appear on /latestread more.
XIX documented a canonical tag regression where post-number and ?page=N topic URLs remain self-referencing after Ember’s client-side redirect, potentially contributing to thousands of “Crawled – currently not indexed” URLs in Google Search Console read more.
Lindsey clarified that changing an RSVP to “Not Going” intentionally doesn’t remove you from event chat channels, while acknowledging that a leave-channel prompt could be a useful future improvement.
Jenmck shared enthusiastic feedback on Discourse Boards, asking for more than four columns, editable board titles, and better modal dismissal behavior.
Yesterday may have archived boards and MinIO repos, but the forum’s enthusiasm stayed thoroughly un-archived — and picked up a few donation-worthy coffee credits along the way.
David introduced 1, a new npm package that automatically updates themes and plugins to the latest recommended configs for GitHub actions and linting. read more
Pfaffman asked how to get a newer libheic in the Discourse base image; David responded by bumping the image and noted that image-processing is now sandboxed to defend against libheif-type vulnerabilities. read more
Satonotdead requested category exclusions for the Topic Preview Modal; Don implemented an excluded_categories setting and fixed read-state issues inside the modal. read more