Satonotdead was by far the most prolific poster of the day with 14 posts, while Falco, Zogstrip and Sam all earned 5 likes apiece.
Interesting Topics
#Announcements
Voice: Discord-style voice and video rooms, now bundled with Discourse — In the voice announcement topic, Mcwumbly outlined an approach for voice channel access control that leans on existing chat-channel and private-category logic, suggesting the team could reuse the pattern used for chat channels and let categories act as the access-control layer. Falco confirmed that associating a voice channel with a chat channel is on the roadmap and will be followed up in the coming months, after the core audio/video experience is solid. read more | Falco’s roadmap reply
Easier account signup using email codes — Sandra.Mccollum reported that the new enable_local_logins_via_code signup flow is awkward with password managers like Roboform: instead of filling username and password simultaneously, the flow immediately jumps to an email-code prompt, and the password manager inserts the username rather than the email, generating an error. Satonotdead noted in two related threads that this feature (Ask username after validating e-mail) is now bundled into Discourse, and that email codes effectively make the username field on registration unnecessary. read more
#Community Building
How do you handle AI responses in your Community? — The community debated AI post policy at length: Merefield asked about Meta’s own attribution policy, Moin cited the guidelines’ “Don’t Post AI” rule, Dan_Eastwood reported an uptick in sophisticated AI-generated posts from users returning after bans and floated the xkcd-inspired idea of AI-Responders testing suspicious new users in a sandbox, and Nickdb shared his zero-tolerance approach backed by an agent that flags possible AI posts from low-trust users before they go live. read more | Moin’s guideline quote | Dan’s AI-tester suggestion | nickdb’s moderation approach
What’s the story behind your community? — Sono_Hen introduced Doushitara Ii Project (“What should I do?”), a new Japanese Discourse community designed as a “living book” where people can bring half-formed problems before they become clear questions. The first milestone isn’t member count, but collecting 10 genuine “I’m stuck” submissions from strangers — with an emphasis on preserving the thinking process, not just the answer. read more
40C3 – Call for Participation — Thomas_Rother is trying again to organize a Discourse operators meetup at the 2026 CCC congress (40C3), which moves from the CCH congress center to the larger Hamburg Messe. He shared the official call for participation and hopes a longer lead time will draw more responses than last year’s attempt. read more
#Extras
Using Discourse MCP to quickly build a theme — Sam shared a fascinating deep-dive of building a complete theme via the Discourse MCP using DeepSeek 4.1 flash, with Qwen 3 Image for assets, chrome-devtools-mcp for visual verification, and a total cost of $3.04 at peak pricing — compared to an estimated $50–100 for a similar GPT-6 Astra run. He shared the full transcript, noted that the brief is critical to the outcome (he ran it on the same brief as the OP), and observed that while the model ran unattended for hours, tested everything, and kept the code tidy, the design still had visual glitches and lacked Astra’s vision fidelity. Mcwumbly asked to see a “how I generally work” example using multiple LLMs from multiple vendors. read more
#Feature
About thumbs up and down in ask.discourse — Satonotdead asked whether the thumbs-up/thumbs-down feedback system in the #ai-powered ask.discourse is planned as a general feature. Falco clarified that “thumbs up are likes, thumbs down are flags — nothing fancy,” while AdamWargon recalled that Codinghorror deliberately avoided the thumbs-down option to facilitate dialogue rather than technically accurate Q&A. Satonotdead then suggested a future thumbs up/down graph or queue in the admin panel as a moderation and AI-monitoring tool. read more | Falco’s clarification
Localize category topic templates — SilentNewt95 filed a content-localization feature request to make category topic templates localizable. Currently the composer prefill always appears in the site’s default language, even in multilingual communities. The proposal calls for adding topic_template to CategoryLocalization, using the member’s interface locale with a fallback to the default template, and notes the same gap applies to per-category form templates — the workaround today is splitting the community into per-language categories. read more | Related localized categories work
#Plugin
Discourse Workflows — In the workflows topic, Lou asked how to do a case-insensitive match on topic titles in a workflow condition using contains. Zogstrip suggested {{ $JSON.topic.title.toLowerCase() }}, which worked. Ethsim2 then dug into the plugin source and concluded that Workflows uses a sandboxed JavaScript expression system evaluated server-side, with n8n-like conventions — citing an explicit n8n reference in a merge-node commit. read more | zogstrip’s fix
Discourse Dynamic Groups — Satonotdead asked whether anonymous (logged-out) users can be scoped into dynamic groups, wanting to hide certain categories from automated groups while keeping them visible to everyone else. RGJ explained that from both a functional and technical standpoint this is impossible: if a category is accessible to everyone, Discourse sets read_restricted to false and all access mechanisms are bypassed. Satonotdead acknowledged it would only be a “soft” limitation but argued it could still be a worthwhile experiment to encourage contribution over lurking. read more | RGJ’s technical explanation
MinIO installer failing again, this time with a HTTP 410 — Merefield reported that the MinIO environment setup in standard plugin system-test CI is broken again, this time with the client download returning HTTP 410 before any tests run — a recurrence of an earlier CI breakage. Ducks acknowledged upstream builds had disappeared, and Merefield confirmed both minio/minio and minio/mc are now archived, with the README pointing to AIStor and noting the community edition is distributed as source only. Satonotdead suggested Garage and rustfs as lightweight alternatives. read more | merefield’s findings
Adding users to groups created on demand for monthly cohorts — Mcwumbly moved this to Community Building and proposed a two-workflow solution: one scheduled workflow to create a YYYY-MM group a few days in advance, and another to add users to the right group. He then split the discussion, keeping this as a Support topic for finding “the way” to do it, and invited the author to start a separate Community Building topic about how cohort groups fit into their community over time. read more | follow-up on workflows
Jumping from 2026.1 ESR to 2026.7 - What I found — Haydenjames documented three upgrade surprises: the current base image ships PostgreSQL 18 and requires a two-stage rebuild (with the old cluster kept at /shared/postgres_data_old and a warning to have 2x your database size free, as detailed in the PostgreSQL 18 update); the rich_editor site setting is gone, replaced by a per-user composer toggle; and Cloudflare’s managed “XSS, HTML Injection – Script Tag” rule can block theme saves with a bare 403 when a theme component contains a <script> in its <head> field — with a custom skip rule provided. read more
Appearance of a onebox in the edit history — Moin reported that a onebox appears oddly in the edit history view. Zogstrip thanked him for the report and acknowledged “diffing is hard ,” but noted the situation should improve once a WIP PR gets merged. read more
Removing Going status still keeps you in event chat — NateDhaliwal reported that clicking “Going” on an event grants access to the event’s chat channel, but retracting your “Going” status doesn’t remove you from the chat — which seems unintentional. read more
Tags localization issues — ZAICOM followed up on a tags + content-localization bug report with the root cause: they hadn’t set a primary language for tags, a field that should arguably be compulsory rather than optional. read more
Sam — shared a detailed write-up of his test run using the Discourse MCP to build a complete theme with DeepSeek 4.1 flash, including a full transcript, cost breakdown, and honest observations on where open models still fall short of Astra on visual fidelity and attention to detail.
From a $3 AI-built theme to MinIO’s quiet retirement, yesterday on Meta proved that even when the tools change and the binaries vanish, the community keeps building — and the fun is watching what the AI does next.
Welcome to your daily round-up of the last 24 hours on Meta Discourse – where the community tinkers, tests, and talks through everything Discourse, from fresh features to finicky RSS feeds.
Key Stats
Over the past 24 hours, the community has been busy. There were 65 new posts across 39 new and ongoing topics, and those posts collected 59 likes in total. You can browse the latest activity on meta.discourse.org to catch up on anything you might have missed.
Whether you are here for the announcements, the head-scratching support threads, or the shiny new plugins, there was something for everyone.
Interesting Topics
Here are some of the most interesting conversations from the last 24 hours, grouped by category.
#Announcements
Martin unveiled the ability to archive Boards, a gentler alternative to deletion. Archived boards become read-only, disappear from the default list, and can be unarchived at any time by a user with Manage permission – perfect for wrapping up projects while keeping the history around.
The Voice: Discord-style voice and video rooms discussion continued, with Martin noting that the new ACL system should be “great for this, rather than using the old convoluted permission-by-category-inheritance” – good news for those eagerly awaiting finer-grained control.
#Community Building
Thomas_Rother kicked off a call for participation for 40C3, the 2026 Chaos Communication Congress, which is moving to the Hamburg Messe. The hope is to organise a European meetup of Discourse operators – so if you’re in Hamburg at the end of the year, this one is worth a look.
In How do you handle AI responses in your Community?, Nickdb detailed a zero-tolerance policy where low-trust users have new posts parsed through an AI-flagging agent, while Dan_Eastwood argued that “sooner or later, human moderation will lose this fight” and proposed an XKCD-style solution: force AI trolls to engage constructively to stay.
The MinIO installer failing again saga continues. Merefield noted that both minio/minio and minio/mc are now archived, and the community edition is source-only. Ducks is already working on forking the repos and building binaries, while RGJ pointed out that alternatives like RustFS and Garage lack the ACL support Discourse needs.
David responded to Discourse AI going off the rails with an update: changes have been made to the CDCK hosted LLM to improve things. If you were seeing odd AI behaviour, this thread is worth watching.
Satonotdead asked about localizing group titles and descriptions. Olivia confirmed that custom group names cannot be localized with Content Localization at the moment, and suggested keeping the group name as-is while putting both languages in the title or description.
The Backup upload failure due to uninitialized TransferManager is still biting some self-hosters even after an update. Olivia and Ethsim2 provided detailed container-level debugging steps to check which version of aws-sdk-s3 is actually loaded, which should help narrow down the environment mismatch.
#Theme component
Don released Community Support – configurable donation, a flexible theme component for donation and support modals. It supports multiple donation methods, per-method localization, and even a support goal progress bar that keeps counting past 100%. Jagster called it “very much needed today.”
#Plugin
A fresh take on spam prevention arrived with Forum Fortress . Ashs introduced a hosted anti-spam plugin that checks registrations, posts, edits, and profile changes server-to-server, and even offers a free plan while in public alpha.
The Discourse Dynamic Groups plugin got a deep dive as Satonotdead asked about scoping anonymous users. RGJ explained that since anonymous users can’t belong to a group, you can’t restrict categories from logged-out visitors directly – but the discussion around “lurkers” and soft limits is fascinating.
#Feature
Roke_Julian_Lockhart filed a feature request to render the 3 element, which would allow for locale-specific inline quotation marks in Markdown – a small but handy touch for multilingual communities.
In a topic about whether popular topics can be configured, Sniper756 asked how to stop very old threads from appearing in Hot. Olivia clarified that there’s currently no hard age cutoff setting, though Hot’s scoring already takes age and recent activity into account.
The @team group – the folks who build and maintain Discourse – were out in force over the past day. Here is a summary of their contributions, with links to the relevant threads.
From archiving boards to chasing MinIO’s moving goalposts, it was a day of creative problem-solving on Meta Discourse – may your feeds be ever fresh, your boards never need unarchiving, and your sidekiq queues always stay green!
Boards can now be archived — Martin announced that boards can now be archived, offering a less destructive way to remove a board from the main list. Archived boards become read-only, disappear from /boards by default, and can be unarchived at any time by users with Manage permissions.
Community Support — configurable donation — Don released a new theme component for donation/support modals, featuring configurable providers, per-method localization, and progress bars that keep counting past 100%. Jagster called it “very much needed” — though noted that collecting donations that way is illegal in Finland.
Introducing @discourse/update-skeleton — David published a new npm package that automatically updates themes and plugins with the latest recommended GitHub Actions and linting configs. Just run pnpx @discourse/update-skeleton@latest and review the diff.
Bringing Icebreakers into Discourse — Tobiaseigen was delighted to see icebreaker topics as a prompt when starting a new site, but couldn’t find their way back to them afterwards. Moin pointed to hidden site settings and the locale file as workarounds.
Webinar: Exploring Discourse Workflows — The upcoming community webinar attracted interest, with Emily_Roman asking if a recording would be available. Bas confirmed there would be, while cracking a joke about “terrible Dinner & a Movie dates” (read more).
#Self-hosting
Backup upload failure due to uninitialized TransferManager — Exodrifter traced a mysterious backup failure to an old, year-and-a-half-old aws-sdk-s3 pin used as a workaround for Backblaze compatibility. After removing it, backups succeeded — a great reminder that temporary patches need to expire.
Forum Fortress — a fresh take on forum spam prevention — Ashs announced a public alpha anti-spam plugin that checks registrations, posts, edits, and profile changes server-to-server, with regional endpoints and retry/fallback handling.
#Site Management
Use a glossary with Discourse AI translations — Nat published a thorough guide on attaching a translation glossary to AI translators, including how to create custom translation agents, upload the glossary, and force the search tool.
Moderation yes button after suspending user — Sterretje confirmed the issue is solved but couldn’t find the solution button to mark it; Moin explained that the Solved plugin isn’t enabled in that category, so the fixed tag is used instead.
Just sharing the design! — Monikas showcased a beautiful anime-inspired custom design for their community, complete with rounded cards, character artwork, matching light/dark styles, and mobile views. Manuel noted the gamification features and asked whether they were built with a Discourse plugin.
Martinannounced board archiving and helped out in the Discourse Boards topic, showing how to edit board titles and noting that the modal form question deserves attention in their form tooling.
From archiving boards to teaching AI some translation manners, it was a whirlwind day in the Discourse universe — here’s to another 24 hours of building, breaking, and fixing!
Build a Reddit/X/Facebook-style scrolling platform — Damian_Boon showed off a working personalised feed with a first-visit category selector, scoring based on 55% interests, 25% freshness, 10% popularity and 10% randomness, and plans to add behaviour tracking after optimising cache usage (read more). Bas praised the initiative, linked Jeff Atwood’s “Because Reading Is Fundamental” post, and reported a Safari bug where related-topic links didn’t open (read more). It also references the long-running request for a Facebook-like feed.
Introducing @discourse/update-skeleton — David published an npm package that pulls the latest recommended config files for GitHub Actions, linting, and dependencies into existing themes and plugins, with a convenient pnpm update-skeleton shortcut after the first run (read more).
#Announcements
Voice rooms: mic behaviour under discussion — Kumakaze described a bug where muting in the voice room still leaves the microphone open until toggled off and on again, and Falco argued that a pre-join mic selection step doesn’t match the TeamSpeak/Discord school of UX (read more).
Composer redesign now on everyone on Meta — Chapoi enabled the new composer for all Meta visitors to get wider testing coverage, and Ethsim2 spotted a typo in the original announcement: “GIFs int he” (read more).
Cannot re-hide an edited flagged post — Mbauman detailed a moderation loop where a no-op edit unhid an approved flagged post, re-flags couldn’t hide it again, and the UI showed “Thanks, but we’ve already reviewed that post.” Awesomerobot found a fix in the works and is adding migration for bad states (read more).
OIDC login fails after OAuth2 2.x upgrade — Levarm diagnosed a Nil JSON web token failure in self-hosted Discourse after the oauth2 gem upgrade, reproduced it with fake data, and confirmed a workaround; David pointed to a commit that should resolve it (read more).
Edit draft opens as a reply instead of an edit — Davidb merged a fix so an existing edit draft no longer hijacks a new reply composition in the composer (read more).
Calendar ICS export wrong time in Outlook — Ethsim2 got a fix merged for the one-hour shift when importing events with TZID=Europe/Berlin, and Tannerabread confirmed it was already in latest (read more).
RSS polling could take 20+ minutes — Icaria36 reported very slow feed processing; Zogstrip’s performance PRs brought most feeds down to under a minute, and Moin explained how merged changes flow to the latest branch (read more).
Voice badges reappearing after updates — Richie found that disabled voice badges came back after updating; Zogstrip shared that he’s working on automatically making plugin badges available based on whether the plugin is enabled (read more).
#Self-hosting
How to get libheic / libheif 1.23.4 — Pfaffman asked how to get the newer library after a client’s security concern; David advised against manually overriding the base image and then quickly bumped the base image so libheif.so.1.23.4 was available (read more).
PostgreSQL 18 upgrade left Discourse using PG15 binaries — Terminus hit FATAL: database files are incompatible with server after a PG18 upgrade because the rebuilt container still contained PostgreSQL 15; Merefield recommended restoring from a recent backup onto a fresh server rather than fighting the container build (read more).
#Plugin
Discourse Boards — Martin answered questions about creating more than four columns, editing board titles through the Board settings modal, and the annoying issue of modals closing when clicking outside, which might become a FormKit improvement (read more).
#Feature
Chat permissions for announce channels — Awesomerobot confirmed there is no read-only chat channel yet, but said decoupling chat channels from category permissions has been discussed and may come in the future (read more).
Using Workflows to send Slack messages on assignment — Lindsey published an importable workflow that posts Slack messages when topics or posts are assigned or unassigned, with filters for category, tag, and assignee group (read more).
Yesterday’s Meta reminded us that whether it’s a 3.5 GB backup timing out at 87% or a typo like “GIFs int he,” someone is always ready with a fix, a workaround, or a Keanu Reeves gif: my pleasure.
The Discord-style Voice rooms announcement continued to draw feedback. Kumakaze reported that microphones may appear muted but stay open, and Falco pointed to existing push-to-talk support while acknowledging a native app would improve the experience. Newkid expressed appreciation for the addition of voice stats to the About > Activity page.
The Composer redesign test was enabled for everyone on Meta by Chapoi to widen feedback; Ethsim2 noted iOS seemed less broken than before but flagged a typo in the original post.
Martin announced Improved event reminder preferences, which adds personal-message reminders as the new default so event notifications reach users even when they are not logged in, with options for Notification, Personal message, or None.
#Feature
Mbauman explored posting in a disabled language, asking for more authoring locales than the site’s enabled list. Moin and Awesomerobot clarified that the Locale Detector can already detect and translate any language, but the composer dropdown only shows enabled locales. Awesomerobot suggested allowing admins to add extra languages to the composer menu as a possible future option.
Philh shared an alpha release of DiscussionBridge, a broader integration beyond Statamic for connecting Discourse to static site generators, with demos available for both Statamic and generic SSG workflows.
Satonotdead asked about the 50 max nodes limit in Workflows. Awesomerobot explained the limit is practical rather than technical and recommended splitting workflows with workflow call and call workflow nodes; Mcwumbly also hit the limit and noted that sticky notes count toward it.
RSS polling delays were largely resolved after Zogstrip’s fix; Icaria36 confirmed most feeds now import within a minute, though extremely long feeds can still take a few minutes.
From 50-node workflow Tetris to Esperanto detective work, Meta was anything but quiet yesterday—just remember to count your sticky notes before you hit the next cap!
Bartv questioned whether category hashtag floating cards can be disabled and how users can get from the card to the topic list, prompting Mcwumbly to note the feature is experimental and already enabled on Meta. Martin later said double-clicking the card will navigate to the category and floated adding a “Go to topics” link; Moin and Putty also discussed how subcategory hashtags like #news-and-events:announcements now render. read more
The email code signup upcoming change received extensive feedback. Rishabh clarified that random username generation is optional, Keegan announced a PR to improve flows for sites requiring staff approval, and Moin reported a possible conflict with the invite code setting that prevented signup emails from being sent. read more
Lindsey announced three new Workflow nodes for Boards — Create board, Create board column, and Card moved — enabling automated board creation, column management, and card movement in Business and Enterprise plans. read more
Nat introduced a new Ask AI dashboard section under /admin, featuring a “What users are asking” report, subject-based grouping, manual and weekly reports, and new settings such as ai_ask_ai_report_weekly_enabled. read more
Martin announced improved event reminder preferences, adding a Set event reminders via option — Notification, Personal message, or None — so reminders can reach members by PM/email even when they aren’t logged in. read more
Nat unveiled Discourse’s built-in MCP server, allowing AI apps to search topics, read discussions, create posts, and — for staff — inspect the review queue and site settings, all through OAuth authorization. read more
Moin reported that page views were suddenly showing as “other traffic” in the dashboard-reports dashboard; Kris.Kotlarek identified the cause as a tracking transition and shipped a PR fix. read more
Jagster found that Board cards couldn’t be dragged on iOS; Awesomerobot confirmed the issue and merged a new drag-and-drop implementation that restores mobile dragging. read more
Mbauman highlighted conflicting instructions in the default locale detector agent — it asks for JSON but also says the response must be only a language code — and shared a cleaner trialled prompt that avoids confusing models with location mentions. read more
Zefoo reported that when a user is invited to an existing PM, the email notification wrongly tags the OP instead of the inviter; Nat fixed it with a merged PR. read more
#Community Building
SnappyLagoon28 asked how to structure a Discourse community for BYDFi users, and Awesomerobot advised starting with as few categories as possible, using tags like Bitcoin and Ethereum to handle fast-moving subjects without over-categorizing early. read more
#Feature
Mbauman and Nat discussed whether the composer’s language menu makes people think they can’t post in languages outside the site’s supported list, with Mbauman sharing real community feedback where users assumed posting in Portuguese, Dutch, or Norwegian wasn’t allowed. read more
Patrickemin had chat windows opening full-screen when using tag URLs; Moin suggested safe mode, and Arkshine fixed it with a new setting in the chat-sidebar theme component. read more
Martin merged an upcoming change making inline subcategory links more concise, enabled on Meta: #community-building:praise now displays a floating card with a clickable link to the full topic list. Mcwumbly is letting the design “simmer in experimental” while the team polishes it. read more
Canapin requested mouse-swipe navigation of gallery carousels directly in posts without opening the lightbox; NateDhaliwal noted the arrows and thumbs are already interactive, and Satonotdead confirmed smooth swiping on Android. read more
Martin merged and enabled the category hashtag floating card and subcategory hashtag improvements (412529), announced improved event reminders (412427), and helped diagnose Kanban board configuration issues (118164).
Nat shipped two major announcements — the Ask AI admin dashboard (412735) and the built-in MCP server (412755) — and fixed the wrong-inviter email notification on PMs (412725). Nat also explained how staged user post dates come from incoming email Date headers (412726).
Lindsey announced the new Workflow nodes for Boards (412558) and pointed out that filtering calendar events by tag was addressed in a PR (293977).
Rishabh and Keegan continued iterating on email-code signup, with Keegan shipping an improved flow for staff-approval sites (407068).
Sam fixed the missing group parameter when group owners create invites from the group page (412653).
Mcwumbly reassured the community that category hashtag cards will “simmer in experimental” (412529) and linked Nat's Ask AI work to the search UX project (409317).
Awesomerobot merged a fix for Board drag-and-drop on iOS (412644), helped debug tag display issues caused by an unmaintained theme component (395531), shared CSS for left-aligning the login welcome message (411936), and gave community structure advice (412639).
Moin was everywhere in support: he reported the dashboard pageviews bug (412614), tested email-code signup with invite code enabled (407068), helped route chat tag URL issues to safe mode and a theme component (412652), answered Kanban board questions (118164), explained category types (412758), and linked the group invite issue to a year-old feature request (66560).
J.Jaffeux responded to feedback about the 50-node Workflows limit, saying he wouldn’t object to raising it to 100 (412562).
Kris.Kotlarek fixed the dashboard pageview tracking transition bug (412614).
Bartv offered early UX feedback on category hashtag floating cards, asking for a way to disable them and a clearer path to the topic list (412529).
Chapoi advised on a Zoho SalesIQ black-screen issue, suggesting custom CSS to hide the overlay (412588).
Between hashtag cards, drag-and-drop Boards, Ask AI dashboards, and a built-in MCP server, yesterday proved that Discourse never sleeps — it just keeps moving cards from “In progress” to “Shipped”!
Nat announced a built-in MCP server, allowing AI apps to search, read, and even write to Discourse communities using the Model Context Protocol. The project thread is open for feedback, and the new server runs as part of your site without needing the local discourse-mcp package.
Lindsey announced new Workflow nodes for Boards, letting you automate board creation, column creation, and card moves on the Business and Enterprise plans.
The unified new view for the topic list continues to generate feedback. Seanblue misses seeing unread replies from the homepage, Gunnar noticed the old unread link returns in DiscourseHub when opting out, and Moin still wants a way to see both counts in the iOS app.
Testing of email-code signup continues, with Mpaulhac confirming they’ll try it and Moin flagging a possible conflict with the invite code site setting that prevented signup emails from being sent.
Private, group-internal events respect category permissions in views, but the ICS API still exposes all events. Thomas_Rother is asking for group-scoped feeds, and Awesomerobot suggested a dedicated user with restricted permissions as a workaround.
A Zoho SalesIQ integration is causing a black-screen overlay in portrait mode on mobile. Chapoi suggested checking overlay CSS and Zoho’s chat-disable settings, and Dax followed up on the ticket after visiting the affected site.
With AI apps reading your forums, workflow nodes shuffling cards, and a French translation already landing on Crowdin, yesterday proved that the best way to keep a community moving is to give it more tools — and then tell everyone about them.
A German-language support thread about “[Admin Notice] One of your themes or plugins contains code that needs to be updated” saw Viddekla and Moin collaborating to isolate the source. Moin suggested running Safe Mode and disabling themes and plugins one by one, then later pointed to a Locations plugin update released an hour earlier. Merefieldjoined in, clarifying that the Locations fix was actually released on April 2nd, so that plugin may not be the culprit.
Roberto_Capodieci introduced Chat Bridge, a new MIT-licensed plugin (tagged embedding and chat-integration) that embeds a forum’s chat on external websites with a single script tag. The write-up explains why a plugin beats an external service, covering API scopes, rate limits, webhook gaps, and the security trade-off behind the three-second message delivery delay.
Canapin reported a quick search regression: pressing Enter after triggering a quick search no longer opens the advanced search page. “I was using a lot this feature and I miss it,” they wrote, and asked whether it belongs under #FEATURE, ux, or bug.
Gingerbeardman found a reproducible case of the “editing a post takes me back many posts” issue on selectbutton.net, confirming the jump happens on an older Discourse forum but not on current sites. Moinconfirmed the target forum is running v3.6.0.beta1-dev from about a year ago, so the fixed fix likely shipped in a later release.
Thomas_Rother shared API key test results for private, group-internal events, finding that even read-only keys are not authorized to access the events endpoint, and no granular scope exists to filter events by user group. The thread is tagged events.
Canapin opened a new search bug report: going from quick search to advanced search sometimes replaces terms with the literal text undefined. The issue is reproducible but intermittent, and sometimes replaces terms with an empty string or a previously searched term instead.
Canapin responded in the Topic Gallery plugin thread, saying they’re open to adding a setting for the requested behavior, but as “not a programmer,” they’d want an experienced developer to review the existing PR for safety and code quality.
Thokaapologized in the ActivityPub Plugin thread, confirming the root cause of their earlier issue was their own old “provide full name in mentions” plugin rather than the activitypub plugin itself.
Merefield helped troubleshoot the German support thread about the admin theme/plugin code warning, confirming the Locations plugin fix was released on April 2nd to help narrow down whether that plugin was the source.
From floating category cards to chat bubbles on every corner of the web, yesterday was all about pushing Discourse further—even if a few “undefined” search terms tried to get in the way.
It’s been a busy 24 hours on Meta, with 44 new posts, 19 new topics, and 44 likes across the community — and no shortage of strong opinions on AI-generated code, chat widgets that roam the web, and badges that refuse to stay dead.
Key Stats
44 new posts across 19 new topics in the last 24 hours
Darkpixlzproposed that LLM-generated themes, plugins, and components be tagged as #ai-generated, citing the flood of identical, low-quality “slop” and the ethical concerns of undisclosed AI output. RGJpushed back, arguing the quality of software depends on the human guiding the LLM, and Satonotdeadasked how vibe-coders should audit code before publishing. Merefieldcountered that the horse has bolted — most core work is already agent-built — while Samflipped the discussion toward a bolder idea: automatically security-scanning all third-party themes and plugins before they’re advertised here. Philhpointed to Statamic’s scanned marketplace as a model, and Elmuerteraised the risk of data exfiltration to external servers. read more
#Feature
Roberto_CapodieciintroducedChat Bridge, an MIT-licensed plugin that puts Discourse chat on any external website with one script tag — including channel history, direct messages, voice messages, and per-site accent colors. He explains in depth why building it in-process beats an external API bridge: granular scopes, rate limits, and CORS constraints all make a plugin the saner choice. Darkpixlzwithdrew a like over a documentation screenshot, but the thread is a goldmine for anyone embedding chat beyond the forum.
Robbie.Morrisonargued that letting users delete their own reply-less topics at any time should remain a site-specific setting, with the existing 24-hour window as the recommended default.
Elsiehuppbumped the long-running request for bidirectional sync between Discourse and GitHub/GitLab issue trackers, citing F-Droid’s forum as a real-world case where siloing drives spammy cross-posting between the Discourse and the GitLab.
#Announcements
Satonotdeadasked how to use Discourse’s built-in MCP server with a scoped, non-admin user. Natwalked through the Access tab’s Group x Scope setup, and later clarified that an MCP-only user still needs to be in a group with the right grants — and cannot see anything they wouldn’t otherwise be able to see. read more
Ethsim2confirmed in the new review queue layout thread that adding logged_in_users to the relevant site setting should resolve the question raised by Hellekin.
Famousamos.1confirmed that the suggested fixes for their nested-reply and newly-created-uncategorized-category issues did the trick.
Stephtaraasked how to feed test data into their first Workflow after an onboarding step failed. Satonotdeadexplained that adding a manual trigger element is the way to fire it on demand, while pinning outputs and inspecting the Executions tab gives the detail needed to iterate — then confirmed that using the green start button was indeed the right instinct. read more
Satonotdeadwondered how to use the pi.dev harness with Discourse Vibe; Samrecommended installing it inside the dv container with a hook, and suggested the web frontend offers a far richer agent experience than terminal-only land.
#Plugin
Canapinshipped a fix for Topic Gallery following the granular group-permissions change, warning admins to migrate everyone permissions to anonymous_users and logged_in_users — and Satonotdeadvoted for a general gallery filterable by category or tag.
Richiereported that Voice badges keep coming back after every Discourse update on a forum where Voice is disabled, and suspects the rebuild process may be what resurrects them.
Canapintracked down a reproducible bug where quick-search terms can be replaced by undefined when opening advanced search — though it doesn’t trigger every time.
J127flagged that private pages returning 403 show up in analytics titled “Page Not Found,” which is misleading; Moinsuggested checking the detailed_404 site setting.
Sniper756surveyed which LLMs everyone uses with Discourse AI after hitting issues with DeepSeek and Qwen; RGJreplied that DeepSeek v4.1 flash is working well for him.
Sampushed for automatic security scanning of third-party themes and plugins before they are advertised on Meta, proposing a future where “version XYZ” of a theme has been at least AI-scanned — and advisedSatonotdead on installing pi.dev inside a Discourse Vibe container, noting the web UI is the richer path.
Natanswered MCP server questions with detailed Access-tab and Group x Scope guidance, followed up on what an MCP-only user can and cannot see, and promised to add the clarification to the FAQ.
Between AI-written plugins demanding their own tag, chat bubbles hopping across the web, and Voice badges staging a nightly resurrection, yesterday proved that on Meta the only constant is the debate — and it’s usually a fun one.
Luna_Mora spotted that Quote Callouts were missing their styling inside chat because the .chat-cooked class wasn’t included in the CSS selector. Arkshine confirmed and deployed a fix shortly after. read more
A Chinese-language ai survey asked which LLMs people are actually pairing with Discourse AI. RGJ reported that DeepSeek is working well, Satonotdead noted DeepSeek and GLM models need custom hooks or a LiteLLM proxy, and Orioni shared their cost-efficient setup using Gemini 2.5 Flash Lite. read more
Philh introduced DiscourseSkill.md, a skill file designed to help LLM agents review Discourse plugins and themes. Moin questioned how well the review scope matches actual theme structures. read more
From PoutyTurtle58 to a composer toolbar that finally lets people hide the buttons they never touch, yesterday proved that even the wildest corners of Discourse can be tamed — one setting at a time.
Chapoi launched an experimental composer toolbar customisation feature, letting users hide buttons they never use. It’s available via Admin → Upcoming Changes, and preferences are synced per account across devices. Keyboard shortcuts keep working when buttons are hidden, and the upload button plus the + menu always remain. read more
Awesomerobot announced that sites can now use Discourse to power their own AI Q&A homepage, similar to ask.discourse.com. The feature requires ai_bot_enabled and offers an ai bot conversations homepage option, plus support for anonymous users seeing a preview before being asked to log in. A follow-up walkthrough covers building a standalone ask.example.com site with a “Discourse Helper” agent. read more
Pmusaraj announced that Discourse core now supports Markdown endpoints for topic lists and views. Clients can request Markdown via .md URLs or an Accept: text/markdown header. The feature is enabled by default on hosted sites and can be disabled with the enable_markdown_endpoints site setting. read more
Loic shared the September 2026 monthly release announcement, with links to the main 2026.9 changelog and patch releases for 2026.8.1, 2026.7.3, and 2026.1.9. read more
#Site feedback
The debate over whether LLM-generated themes and plugins should be tagged continued to generate strong reactions. Philh proposed a separate DiscourseSkill.md to help review code quality, Sam confirmed he has been developing Discourse heavily with AI agents, Chapoi pointed out that even core is now developed with heavy AI use, and Kianga argued for transparency so users can make informed choices. The thread turned into a wider discussion about code quality, ethics, and the practicalities of labelling. read more
In a smaller but practical thread, Gryzor asked where to find AI-generated tag translations, and Moin explained how to edit them from the tag’s wrench menu under the Localizations tab. Nat added that more context has already been passed into the tag translator in a recent PR. read more
Jagster reported that Discourse ActivityPub returns 502 after rebuilding, and Satonotdead confirmed the same issue. Pmusaraj and TechAPJ investigated, tracing it to a Rails 8.1 association problem that had already been fixed in the ActivityPub plugin. After rebuilding again, Jagster confirmed it worked. read more
RGJ diagnosed a route conflict in the Discourse Fingerprint plugin where /admin/plugins/fingerprint was being handled by the core plugin controller instead of the plugin’s admin controller. He prepared a fix, and Zogstrip reviewed and merged the PR. read more
Sailor reported that SES/SNS bounce notifications no longer match EmailLog entries after the TopicArn security hardening. Their analysis shows the SNS webhook returns 200, but the job exits early because SES-assigned message IDs never match Discourse’s own Message-ID, silently disabling bounce processing on the current ESR. read more
Gallussi detailed a frustrating DiscourseConnect HMAC validation failure with WordPress, where the incoming request from Discourse to WordPress fails signature verification. RGJ suggested using urldecode() instead of wp_unslash(), but Gallussi explained that PHP already URL-decodes $_GET and that double-decoding could break Base64 payloads. The thread includes full sanitised PHP code and is a good read for anyone building custom DiscourseConnect providers. read more
#Self-hosting
Agemo worked through a painful “too many certificates” Let’s Encrypt rate-limit issue, eventually finding that the site’s “Oops” screen was linked to an admin login problem rather than the certificate errors. After testing with a non-admin user, login worked, while admins were still blocked. The thread is a cautionary tale about chasing the wrong symptoms. read more
#Feature
Gryzor asked for an option to allow admins to decide what (not) to automatically translate, specifically wanting to stop the translator from touching tags altogether. Nat moved the request into its own feature topic, where Satonotdead added that their instance uses English tags intentionally and would benefit from avoiding reverse-localisation. read more
Riking proposed a stacked bar chart visualisation for ranked-choice polls, arguing it preserves transfer-source information and round-by-round gains better than the current pie chart. Merefield agreed a segmented bar might be simpler than a full Sankey diagram while still capturing the most useful information. read more
Philh shared a first cut of DiscourseSkill.md, a skill file designed to help AI agents and reviewers evaluate Discourse plugins, themes, and components. After feedback from Moin, the skill was expanded to include separate inventories for plugins, themes, theme components, and hybrid extensions. Satonotdead also expressed gratitude, saying it caught errors in their own LLM-assisted plugins. read more
A new blog post tells the story of how TurboRenault moved 20,000 members and 750,000 posts from XenForo to Discourse. Admin Andy Bond’s only regret was not making the move sooner, and Mae thanked him for sharing the story. read more
Chapoi unveiled the experimental composer toolbar customisation feature and explained how admins and users can enable it. read more They also linked it from the composer redesign testing thread as a first step toward toolbar customisation. read more In the LLM-tagging debate, Chapoi noted that Discourse core itself is now developed with heavy AI use. read more
Awesomerobot announced the new AI Q&A homepage functionality, covering the new settings and how anonymous users interact with the preview. read more They followed up with a detailed walkthrough for building a standalone ask.example.com site. read more
Pmusaraj announced Markdown endpoints in Discourse core. read more They also helped investigate the ActivityPub 502 report and checked whether a compatibility entry was needed for Rails 8.1. read more
TechAPJ confirmed that the ActivityPub fix works on both Rails 8.0.5.1 and 8.1.3.1, and asked reporters to try rebuilding again. read more
Sam weighed in firmly on the LLM-generated themes and plugins tagging debate, stating that they have been developing Discourse with AI agents and have not written more than a handful of lines of code by hand in about ten months. read more They also investigated broken AI Web Artifacts, identified that security fixes had made artifact sharing too strict, and began looking at a new system for sharing a single artifact alone. read more
Nat shared an update in the AI-generated tag translations topic, noting that more context is now being passed into the tag translator. read more They also moved the “allow admins to decide what not to translate” request into its own feature topic. read more In the MCP server thread, Nat clarified that the changes are admin-UI only and nothing is visible to regular users. read more
Loic posted the September 2026 monthly release announcement with links to all supported changelogs. read more
Renato fixed an issue where pasting from Docusaurus broke code formatting blocks, explaining that Docusaurus uses one div per line. read more They also commented on the open markdown field in form templates feature request, agreeing that resizing should be an easy fix. read more
Tgxworld confirmed they are working through a fix for voice badges that keep coming back after updates. read more
Rishabh confirmed that random username generation is now opt-in and is not enabled by default alongside the email-code signup changes. read more
Zogstrip reviewed, approved, and merged RGJ’s fix for the fingerprint plugin route conflict. read more
Mae thanked the TurboRenault admin for sharing the XenForo to Discourse migration story on the blog. read more
Yesterday’s biggest plot twist: the forum that seemed to be drowning in certificate errors and “Oops” screens turned out to be secretly fine — you just needed to log in as someone who wasn’t an admin. And if even Discourse core is written by AI agents now, maybe the safest tag of all is “tested by a human who still reads the error messages.”
Here’s what caught the community’s attention over the past day, grouped by category:
#Announcements
Awesomerobot introduced an experimental user sidebar navigation for user profiles, replacing the horizontal links with a collapsible, filterable sidebar. It’s available via /admin/config/upcoming-changes as sidebar user navigation, and you can join the design experiments group to test it here on Meta. Early feedback flagged that reactions, votes and solved topics are missing from notification lists, while One1 praised the reduced horizontal scrolling but found the “Filter Links” wording confusing (read more).
Markdown endpoints for topic lists and views are now part of Discourse core. Pmusaraj confirmed the discourse-to-markdown plugin should be removed to avoid conflicts and listed the supported routes, including /latest.md, /hot.md, /top.md, /new.md, /unread.md, category and tag lists, plus /categories.md and /tags.md directories (read more). He also noted that Cloudflare’s own Markdown-for-agents conversion will override Discourse’s handling when the Accept: text/markdown header is intercepted. Moin asked why /unseen isn’t included (post), and Ethsim2 wondered whether discourse-post-event blocks will get a dedicated Markdown representation (post).
The fiery debate over requiring LLM-generated themes and plugins to be tagged continued, with 17 likes spread across the thread. Chapoi dismissed manual review of every third-party plugin or theme as “not a viable idea” (post), while RGJ challenged proponents to show real examples of harmful “vibe-coded” plugins (post). Ed_S floated a self-certified checklist covering testing and responsiveness (post), NateDhaliwal pushed back against calling AI-assisted work “slop” (post), and Lilly refused to add disclaimers: > “i control the agents, review the code … and test them. you’re free to not use them” (post).
MachineScholar is battling low-resolution, stuttering camera video with a self-hosted LiveKit server. LiveKit logs show duplicate layer and unbound buffer overflowing messages, and Voice appears to request a lower-quality stream than configured (read more).
The Error for logged in users and Git hang saga continues: Agemo reports that long-standing admins still get the “Oops…” screen while freshly created admins log in fine (post). Ed_S says his forum recovered when GitHub rolled out a fix and suspects it may be geography- or provider-specific (read more).
M_Terenui gave feedback on the Boards feature, noting the “Create and manage boards with columns.” intro sentence is odd for viewers who can’t create or manage boards, and suggested it be admin-only or configurable. Jagster replied that the text can already be customized via site texts (read more).
#Plugin
DaniW42 released Ballotage, a plugin for secret black/white-ball ballots used by clubs and lodges. It tracks who has voted while keeping choices anonymous, and finalizing a ballot irreversibly deletes the result and participant list (read more).
Whether you’re casting black or white balls, hopping into a voice room, or wrestling a BusyBox stat — may your only 404 today be a page that truly doesn’t exist!
Yesterday’s activity gave us unread counts hiding in bot chats, deleted categories refusing to die, and a composer redesign that (for now) prefers humans over AI — so even robots need a day off, but not before tidying up a few loose ends.