It was another busy 24 hours on Meta, with a brand-new Voice feature generating excitement, a rapid-fire Horizon bug fix, and plenty of thoughtful discussion about permissions, AI search, and username policies. Here’s a recap of everything you might have missed.
Key Stats
95 new posts and 38 new topics were created in the last 24 hours.
Angus shared his love for the new Discourse Voice rooms, suggesting “live” as a better name than “voice” because it works as an adverb or verb in everyday English. SkyeDragon then asked whether viewers can adjust each speaker’s volume independently, and Falco confirmed you can right-click any participant to tweak their audio. SkyeDragon later posted detailed feedback after trying the feature, including a useful Linux workaround for screenshare audio, an appreciation for the IP privacy popup, and a note that the room list can be hard to find on mobile — read more.
The discussion around Ask AI search continued as Moin reported that the new search interface on his tablet no longer lets him press Enter to perform a classic search, and noticed that selecting “in this topic” is lost when you refine your query. Nat acknowledged the UX regression and said he would look into it, while Sam shared an AI-generated state diagram produced with his Jarvis tool to help map out the feature’s intended behavior — read more.
The granular group-based permissions proposal sparked a robust debate about removing the everyone group. Martin defended the change, explaining that everyone didn’t consistently mean “public access” across the platform, and that the new explicit anonymous_users and logged_in_users groups are clearer. Merefield pushed back, suggesting a “Public” shortcut in the UI to make selecting both groups easier; Martin replied that a UI shortcut is possible while keeping the underlying permissions explicit. A related conversation about excluding groups from categories also resurfaced.
Small-Lovely-Cat wrote a thorough analysis of a ruby-i18n regression introduced by an upstream update, where display languages could accidentally fall back to the site default due to how Fiber-local configuration was being copied. They proposed rolling back the version until the upstream fix lands, and Nat said they were investigating it.
WaitroseCarpark shared a deep-dive bug report on Patreon v2 sync reporting “0 users synced”, tracing the problem to the plugin reading member emails from the wrong resource in the API response. They included a working patch, which might point the way to an official fix.
Richie was wondering why a bunch of new Voice badges had appeared on a site that doesn’t even have chat or voice enabled. NateDhaliwal showed that you can simply remove the Voice group from Group settings to hide them all, and Zogstrip flagged the default-enabled behavior to Falco as something they should probably fix — read more.
A practical question from Jenmck about allowing users to change usernames indefinitely drew several community policies. Ondrej mentioned a two-year cooldown used on another forum (tracked via user notes), while Satonotdead suggested six months as a reasonable middle ground. Moin pitched a workflow that alerts staff when a username change happens too frequently — read more.
The new Discourse Boards plugin is already a hit. Andrew_Rowe called it “amazing” and asked the community how they surface board access to users. Martin showed the current global sidebar link and floated a few ideas, including a dedicated “Boards” sidebar block or an “Add to my sidebar” option in the board menu. For another board-like visual, the Kanban Board theme component also got a mention.
A new guide on bundle splitting for plugins was published, explaining how plugins can opt into the staticModules system to lazy-load routes, components, and libraries for faster boot times. The guide includes helpful examples for grouping routes and dynamically importing modals using DAsyncContent — a must-read for plugin developers.
Nat was busy on the I18n regression caused by the ruby-i18n update, and spent time refining the Ask AI search experience, acknowledging Moin's feedback about lost search scoping and promising to address it.
Using Discourse MCP to quickly build a theme — Sam shared a full walkthrough of using the Discourse MCP, a Pro/Business trial, and OpenAI Codex with GPT-6 Astra to generate a custom New Yorker-inspired theme, including API key setup and an AI-authored design brief in the opening post.
Discourse Boards — Martin shared upcoming ideas for board discovery, including a sidebar block similar to the Categories block and an Add/remove to/from my sidebar board menu entry in this update.
Staged users’ posts stuck in queue — Tknospdr reported that tickets with embedded media were getting stuck in the approval queue, and Moin pointed to a related review queue issue while asking for the exact queue reason in this exchange.
From Discord-style voice rooms to AI-designed literary magazine themes, yesterday proved once again that Discourse can be whatever you dream it to be — even a bottomless feed of fresh topics!
Sam kicked off a fascinating demonstration of using Discourse MCP to quickly build a theme, pairing the MCP server with GPT-6 Astra and a Discourse trial to create a New Yorker-inspired community called “The Salon”. He walked through generating an API key, configuring Codex, and giving the agent a creative brief. EricGT discussed the broader concept of AI agent harnesses, while Satonotdead pointed to DeepSeek V4.1 as a possible alternative — Sam was sceptical but promised to try a fair comparison later.
Rishabh clarified the email-code signup flow after feedback from Ecki: a dedicated username step now appears after email confirmation, and the earlier “user1”/“user2” random-username bug has been fixed.
Danielle announced a webinar on Exploring Discourse Workflows on September 17, and is asking the community to share workflow ideas they’d like to see demoed. Putty suggested consolidating the “Schedule a PM with Data Explorer Results” automation scripts into one or two workflows.
ZAICOM reported tag localization issues where tag names don’t switch with site language. Nat traced it to the model needing a locale set before localizations show, and pushed a fix in PR #43512.
Kris.Kotlarek answered what it means when you have negative “other traffic” in dashboard reports, explaining it can happen when browser-view counts exceed total record views, possibly from direct hits to tracking endpoints. They share a PR to clamp the value to zero.
David provided deep debugging help for the Android/iOS composer problems, identifying the S3/Cloudfront CORS caching behavior and offering practical workarounds.
Whether you’re dressing your forum in New Yorker chic, wrestling CloudFront CORS gremlins, or just trying to keep your prompts from vanishing, it was a wonderfully weird day on meta — keep your API keys close and your AI agents closer!
Sam followed up on using the Discourse MCP to quickly build a theme with a fully unattended DeepSeek 4.1 flash test run: a responsive, dark/light-mode-supporting theme built for roughly $3.04 in API costs — versus an estimated $325 for the same work with GPT-6 Astra — with an honest verdict that the design “feels more like a LLM design.” Ducks also shared their own before/after attempt on a tattooer directory.
Damian_Boon shared the initial “build your feed” design for a blog/Reddit-style Discourse, complete with an interests table tracking impressions, opens, likes, replies and dwell time to compute affinity scores.
Sam — ran the full unattended DeepSeek 4.1 flash theme build via the Discourse MCP, pricing it at ~$3 versus Astra’s ~$325, and posted a fix for the Spam Detector Agent LLM persistence bug.
David — provided reassurance and CORS clarity in the Android/iOS composer saga, noting that access-control-allow-origin: * on static assets is perfectly fine.
Falco — explained the per-user invite design and group gating for the new Voice rooms.
If yesterday proved anything, it’s that Discourse can gaslight its admins, sneak staged users past the review queue, and design an entire theme for the price of a flat white — same time tomorrow for the next round of delightful chaos!
Over the past 24 hours, the community produced 43 new posts across 25 new topics, with 40 likes given. Here are the top contributors, ranked by likes received:
Sandra.Mccollum reported that password managers are fumbling the new email-code signup flow (loginsignup): Roboform auto-fills stored credentials, then gets bounced to the one-time-code screen, where it inserts the username and hits an error. A UX wrinkle worth ironing out before stable.
Sono_Hen shared the origin story of Doushitara Ii Project, a new Japanese community, in What’s the story behind your community? — a “living book” where questions don’t need to be fully formed, and the thinking process is preserved for future searchers.
Mcwumbly turned the monthly cohort groups question (groups) into a Workflows blueprint: one scheduled trigger to create the YYYY-MM group, another to add users — and he invited Stephtara to start a parallel Community Building discussion about how cohorts fit into the community over time.
Haydenjames shared hard-won lessons from a 2026.1 ESR → 2026.7 jump: PostgreSQL migrates to 18 in two stages (site down until a second rebuild), the rich editor is now a per-user toggle rather than a site-wide setting, and Cloudflare’s managed XSS rule can return 403 on theme saves.
Sam published the DeepSeek 4.1 flash theme-building experiment, with full transcript, cost breakdown ($3.04 peak vs. an estimated $325 for a comparable Astra run), and honest observations about quality and token efficiency.
From a $3 AI-built theme to a community that wants to be a living book, yesterday proved there’s always room to try something new — just double-check your Going status before you drop into that event chat!
Martin announced that Boards can now be archived, making them read-only and hidden from the default /boards list until a user with Manage permission unarchives them. The feature is aimed at projects that have naturally run their course but deserve to be kept around for archival purposes.
In the Voice: Discord-style voice and video rooms thread, Martin jumped in to note that the new ACL system should be a much better fit for permissions than the old category-inheritance approach.
#Community Building
Thomas_Rother started a Call for Participation for 40C3, reviving the idea of a Discourse operator meetup at the 2026 CCC congress, which moves to the larger Hamburg Messe venue.
The ongoing discussion on How do you handle AI responses in your Community? saw Nickdb advocate for a visible zero-tolerance policy with AI-flagging for low-trust posts, while Dan_Eastwood warned that human moderation will eventually struggle to keep up and proposed using AI to engage AI constructively.
The MinIO installer is failing again with HTTP 410 after MinIO archived its repos and moved to source-only distribution. Merefield suggested limiting the impact to specs, Satonotdead evaluated Garage and RustFS as alternatives, Ducks is building a fork workflow, and RGJ noted ACL compatibility gaps in both options.
SilentNewt95 posted a concrete implementation sketch for Localize category topic templates, including a migration to add topic_template to category_localizations and composer fallback logic for bilingual communities.
ZAICOM followed up on Tags localization issues, explaining that the root cause was an unset primary language for tags and suggesting it should be compulsory rather than optional.
#Plugin
In Discourse Dynamic Groups, Satonotdead asked about limiting anonymous users, while RGJ explained why that is functionally and technically impossible — anonymous users can’t be group members when a category is open to everyone.
AJ_Quick published Advanced Google Analytics (v4), a plugin that brings reading time, reading progress, completion events, and optional managed GA4 tag ownership to Discourse.
Olivia followed up on the backup upload failure, asking whether the official Docker container had been fully rebuilt.
From archived boards to archived MinIO repos, yesterday proved that even on meta.discourse.org the best way to keep things is to know when to let them go — or at least when to make them read-only.
Here’s what happened across the Discourse meta community in the last 24 hours — from a shiny new archiving feature for Boards to fresh anti-spam fortresses and everything in between.
Boards can now be archived — Martin announced that Boards can now be archived, giving managers a less destructive alternative to deletion. Archived boards become read-only, disappear from the default /boards listing, and can be filtered back in or unarchived at any time by users with Manage permission. read more
Community Support — configurable donation — Don released a polished donation and support theme component featuring a configurable support modal, provider-agnostic payment methods, per-method localization, and a support goal progress bar that keeps counting past 100%, 200%, and beyond. read more
Featured Lists — After the v2026.9.0 update broke rendering for Stephane_Roy, Manuel merged a community PR to fix the error in Featured Lists and moved the repository back to GitHub for better alignment with automatic update tooling. read more
#Self-hosting
Backup upload failure due to uninitialized TransferManager — Exodrifter traced a persistent backup failure to an old aws-sdk-s3 pin from a Backblaze workaround that is no longer needed since Backblaze updated their API. Ethsim2 suggested using self-expiring compatibility templates so stale pins don’t silently outlive their purpose. read more
Bringing Icebreakers into Discourse — Tobiaseigen rediscovered the icebreaker onboarding prompt after launching a new site and couldn’t find his way back to it; Moin pointed to the hidden site settings that control onboarding visibility. read more
Using Discourse to Build a Blog, Reddit, X or Facebook-Style Scrolling Platform — Damian_Boon showcased a personalized feed with interest scoring that weighs 55% interests, 25% freshness, 10% popularity, and 10% randomness, plus a first-visit category picker and a follow-up plan for behaviour tracking. read more
Show us your Workflows — Mcwumbly invited the community to an upcoming workflows webinar for anyone who’s been following the workflows automation conversation and wants to go deeper. read more
#Feature
Can Hot topics be configured now? — Sniper756 asked whether the Hot list can be configured to exclude old inactive topics; Olivia explained there’s currently no hard age cutoff setting, and Awesomerobot suggested closing old topics to prevent activity bumps. read more
Discourse AI going off the rails — David confirmed that updates to the CDCK hosted LLM have been deployed to improve response quality for users seeing odd ai output. read more
#Plugin
Advanced Google Analytics (v4) — AJ_Quick released a GA4 plugin that adds reading time, reading progress, completion milestones, search, and engagement events, with an optional managed mode that excludes PM and admin routes from tracking. read more
Forum Fortress — Ashs open-sourced an alpha anti-spam plugin that checks registrations, posts, edits, and profile changes server-to-server against a hosted service, complementing Discourse’s existing anti-spam tools without adding CAPTCHAs. read more
Canonical tag not reset after client-side redirect — XIX reported a potential SEO regression where post-number and ?page=N URLs keep self-referencing canonicals instead of consolidating to the base topic, leading to tens of thousands of near-duplicate URLs stuck in Google Search Console’s “Crawled - currently not indexed” bucket. read more
From archiving boards to adding a dash of randomness to personalized feeds, the community kept the build momentum going strong — here’s to another 24 hours of turning ideas into shipped features!
David announced the new @discourse/update-skeleton npm package, which automatically updates themes and plugins to the latest recommended linting, config, and CI files using pnpx @discourse/update-skeleton@latest.
Mbauman ran into a tricky moderation issue where an edited, flagged post could not be re-hidden; Awesomerobot picked it up and has a fix in the works that will also migrate out of the bad state.
Don added an excluded_categories setting to Topic Preview Modal, and fixed issues with nested read-state dots and new-topic dots staying visible after reading topics in the modal.
#Plugin
Martin answered questions about Discourse Boards, clarifying that more than four columns can be created and explaining how to edit board titles; Jenmck raised a modal UX issue that may be tackled in FormKit.
The Discord-style Voice rooms announcement saw useful feedback: Falco pushed back on adding a pre-join confirmation, while Kumakaze reported a mute-button bug and compared the UX to Jitsi’s pre-join screen.
Mbauman asked for the ability to post in non-enabled languages, arguing that the long tail of languages should be supported for authorship even when a site hasn’t vetted translations. Moin pointed out that Discourse AI already translates posts regardless of the written language, and Awesomerobot suggested hiding the composer menu or letting admins configure additional languages as reasonable next steps.
Olivia confirmed there is still no built-in order:op_edit for topic filters in the OP Edit Time feature request, recommending Data Explorer as a workaround. Moin then highlighted the per-category Allow unlimited owner edits on first post setting, which Lief said was a perfect fit for their employee-authored article workflows.
Satonotdead asked about the 50 max nodes limit in Workflows while building a badge-to-cheer-points automation. Awesomerobot explained it’s mostly a practical UI and performance ceiling, and suggested splitting workflows with the “workflow call” and “call workflow” nodes. Mcwumbly agreed, and noted that sticky notes counting toward the limit feels odd.
Heliosurge asked how to restrict email notifications to essential messages only. Itsbhanusharma mentioned disabling digests, and Ethsim2 dug into the code to show that category moderators don’t receive the pending-review reminder emails unless they are also full moderators.
Falco responded to feedback about the new Voice rooms, noting that push-to-talk already has basic support but a native app would improve the experience. Newkid also thanked the team for adding voice stats to the About > Activity page.
Self-hosters dug into the PostgreSQL 18 update after Terminus couldn’t get the new binaries despite repeated rebuilds. Merefield recommended restoring from a backup onto a new server rather than continuing to modify the container.
Tgxworld confirmed that the 2 markdown issue will be fixed in PR #43711, so pasted content won’t be auto-manipulated when using tildes instead of backticks.
Whether you were wrestling with RSS timelines, bumping into workflow node caps, or just trying to keep your microphone actually muted, yesterday proved that Meta’s community never runs out of ways to test, build, and translate — usually all at once!