awesomerobot showed that custom ToS/Privacy links appear on the About page and suggested using a custom footer or sidebar navigation for site-wide visibility in Privacy Policy not showing up
NateDhaliwal proposed using CSS text-transform: capitalize but was advised to follow Discourse conventions for lowercase plugin names in Set plugin name to capitals?
Event Chat Channels Now AvailableAnnouncements sam introduced dedicated chat channels for calendar events—admins can enable “Chat integration” when creating events, and attendees sync automatically. read more
3.5.0.beta5: Improved admin search, AI forum research, easier site appearance configuration, and simpler plugin developmentAnnouncementsrelease-notes hugh highlighted refinements to the full admin search and new AI Forum Researcher persona in Discourse AI, with extended plugin improvements. read more
3.4.4: Bug fix and UX releaseAnnouncementsrelease-notes hugh announced Discourse 3.4.4, focusing on stability and minor UX tweaks for hosted and self-hosted instances. read more
Installation
POP3 polling settingsInstallationemail-in
A discussion revealed the pop3_polling_enabled setting is hidden from the Email tab; admins can find it in All Site Settings or via rails console. read more
SMTP Error! Please helpInstallationemail
A user encountered a generic “Sorry, an error has occurred” message when enabling email reply settings; community guidance pointed to missing auth details and log inspection. read more
Support
Can’t delete topic without categorySupport
A soft-deleted About topic caused forum loop errors; the OP deleted it directly via Rails console (DELETE FROM topics WHERE id = 3) to resolve the issue. read more
Macrons and search results in NZSupportsearch marvi and nathank tested Te Reo Māori searches; enabling accent-ignoring and running jobs::ReindexSearch restored expected results. read more
How to ungenerate tos/privacy topics?Support
Customizing or removing auto-generated TOS/Privacy topics was achieved by resetting tos_topic_id and privacy_topic_id via hidden site settings. read more
Users list has gone missingSupport
After upgrading, /admin/users/list/active disappeared due to a commit regression; updating to a later commit (9ebce86fd) restored the list. read more
Dev
Automatically updating themes and plugins to .gjs file formatDevdev-news david explained the new require-strict-mode lint rule and released discourse-gjs-codemod for migrating .hbs files. read more
Override or change AboutPageUserDev aest requested a template override; david suggested outlets and merged a UX change to hide profile links for anonymous users with hide_user_profiles_from_public. read more
Toggling Visibility within a Topic connectorDev merefield wanted toggleVisibility in a connector; david pointed out model.toggleStatus("visible") is available without adding a new outlet. read more
How to hide fields (title, category, tag input) when creating a new topic with openNewTopicDev
A user asked about disabling composer fields; the consensus was to hide them via CSS in a theme component. read more
Trouble with theme lint at “install JS Dependencies” stepDev
A theme skeleton CI failure (yarn@pnpm…) was fixed by removing yarn.lock and using pnpm-lock.yaml per GitHub workflow. read more
Doc Sub category – Back to forum loopDevPlugin
A fix and spec for doc-categories was merged to skip #chat and prevent full-screen chat from reopening the forum loop. read more
Designing for Different Devices (Viewport Size, Touch/Hover, etc.)Dev#developer-guides
The breakpoints (sm, md, lg, etc.) and SCSS mixins in lib/viewport were documented for mobile-first theming. read more
Feature
A better way to inform admins that some setting changes require specific sysadmin tasksFeature nathank and tobiaseigen proposed prompting admins to run reindex or rebake when toggling settings like “Search ignore accents.” read more
Renaming AI Persona → AI AgentFeatureai sam led a discussion on aligning terminology with industry trends, renaming “Persona” to “Agent” across Discourse AI. read more
Bug
Error when performing a search on metaBugsearch
A repeating search interface due to Discoveries was fixed by disabling Discoveries and merging a patch in discourse-ai. read more
Additional groups not visible on /about pageBugabout-page
A hidden show_additional_about_groups setting and incomplete migration prevented group display; setting it via Rails console restored functionality. read more
in:messages filter doesn’t update reliably in headerBugsearch
The “in:messages” search filter remained sticky after inbox navigation; a PR fixed the header state logic. read more
API scope problem for “group members” callBug
Restricting API keys by id failed for /groups/:name/members; adjusting scope to use name resolved the 403 error. read more
UX
Positioning header drop-down menus with fk-d-menuUX
A theme component author asked how to adjust dropdown offsets; using @placement="bottom-end" and @offset="0" aligned panels. read more
Data & reporting
Statistics on spam flags reported by AI triage automation#data-&-reporting sql-queryspam pedrom shared a SQL query to calculate total, approved, and rejected spam flags by the AI triage automation, improved with NULLIF for zero counts. read more
sam led the Event Chat Channels rollout and detailed chat integration features in #367885/1 and spearheaded the AI Agent rename in #368198/1.
david published the .gjs codemod for themes/plugins in #368051/1 and guided the AboutPageUser override UX change in #367720/2.
Lilly reproduced and triaged the meta search error in #368194/1 and helped resolve the theme lint CI failure in #368423/4.
hugh authored the 3.5.0.beta5 announcement in #367300/1 and the 3.4.4 release post in #367301/1.
kris.kotlarek merged the doc sub-category loop fix in #367513/13 and corrected the /about groups setting migration in #368218/2.
tobiaseigen proposed prompting admins to run reindex tasks for settings in #368254/2 and shared badge-grant tips for Grant Custom Badge Upon Reading ToS in #368259/7.
tgxworld fixed the in:messages filter bug in #367837/1 and contributed refinements to the admin search in #367300/3.
Bas addressed the API scope group‐members call in #368109/1 and clarified the POP3 polling settings location in #367895/2.
Thanks for reading, and I’ll see you again next week!
Following internal testing, sam announced the Forum Researcher persona for Discourse AI, a new tool for executing deep research on forum content Announcing the Forum Researcher and linked to the Persona guide.
#Site Management
A comprehensive Forum Researcher AI Persona guide was published, covering setup, filters, LLM recommendations, and debugging tips Forum Researcher AI Persona guide.
Community feedback on the new WYSIWYG composer continued: meglio and lindsey debated image resizing ratios, heading-level toolbar placement, and UI polish in Test our new composer!, with follow-ups on hotkeys and image resizing standards.
A community-led request proposed an “after user update” automation trigger that fires on new registrations without requiring a custom field Automation trigger without custom field.
merefield unveiled the Tag Intersection Navigator plugin, extending the Tag Intersections interface with flexible filters and a community-section link Tag Intersection Navigator, plus install instructions at GitHub.
A new theme component empowers admins to control visibility and highlight styles of new-user, returning-user, and official post notices by age and type Post Notice Visibility Control.
An HTML entity encoding bug in the onboarding tip popup (showing “J'ai compris !” instead of “J’ai compris !”) was fixed via a site-text override at HTML entity issue in notification pop-up and read more.
david merged a patch resolving undefined titles in the Welcome Link Banner, fixing missing translations on hosted sites Welcome Link Banner undefined.
A migration oversight in the Add Groups to About component left core’s hidden setting disabled; a new core PR removes the legacy flag entirely for seamless upgrades Additional about groups migration bug and read more.
A theme-component value transformer now forces the desktop navigation bar on mobile by overriding navigation-bar-dropdown-modeDesktop navbar on mobile.
Lilly shared a Data Explorer snippet to export RSS feed URLs as CSV or JSON with a simple SELECT url FROM discourse_rss_polling_rss_feeds query Export RSS feed URLs.
Security Releases: Discourse shipped both the 3.4.5 and 3.5.0.beta6 security updates this week, addressing multiple HackerOne advisories and backporting fixes from security patches. read moreread more
AI Artifact Storage Launch: sam unveiled AI Artifact User Storage, enabling embedded surveys and games stored as Discourse artifacts—an opening move toward richer in-forum AI experiences. read more
OpenAI Responses API Support: Initial support for the new Open AI Responses API was added to Discourse, unlocking O3-Pro integration and paving the way for more advanced LLM features. read more
Horizon Theme Beta: Community feedback continues on the new Horizon theme, focusing on spacing, read-mode font sizes, and tag/banner integration. read more
Header & Notification Menu Styles: The New header dropdown / notification menu styles experiment by jordan-vidrine removed active borders, refined spacing, and rethought unread highlights. read more
Chat Timestamp Inconsistency: A UX quirk in Discourse Chat showed 24-hour timestamps on initial messages but 12-hour on replies. The team is reviewing gutter space constraints and localization settings. read more
Hide Logout Button via CSS: Site operators on the Business plan learned how to hide the Logout item in the user menu using a simple CSS snippet shared by awesomerobot. read more
Styling & Layout Fixes: A batch of critical bug fixes addressed missing theme CSS on published pages, long lines causing mobile sideways scrolling, placeholder text flooding iOS app views, and broken multi-word quoting on tablets. read moreread moreread moreread more
Email & Automation Quirks: Users discovered that Data Explorer automations always send a PM (not an email) and that stale SMTP settings can block admin-account confirms. Detailed troubleshooting steps were shared. read moreread moreread more
Pasting Images in Tables: Attempting to paste images into markdown table cells tripped on pipe characters; a workaround and tutorial update was proposed. read more
Rename Bug in Data Explorer: A regression where custom queries could not be renamed was traced and fixed in the Discourse-Data-Explorer plugin. read more
AI Bot Page Access: Attempts to expose the Ask-Discourse-AI page to anonymous visitors failed due to its reliance on PM permissions, confirming guests cannot leverage AI-bot features. read more
Component-Template Deprecation & Base URI: david enabled Ember’s component-template-resolving deprecation banner and clarified moving templates to co-located .gjs files; Moin showed how to use discourse/helpers/base-path to obtain the forum’s root URL. read moreread more
.gjs File Format Adoption: Discussion around migrating themes/plugins from separate js/hbs to .gjs with a codemod and clarifications on performance characteristics of Glimmer vs classic components. read more
Social Layout Prototypes: A reminder that the “more social” Discourse layout sketches remain conceptual and no production code was merged. read more
Custom Button & Review-Queue Filters: The community requested routing the New Topic button to custom wizards and adding a “Reviewed between” date filter in the review queue; theme components and feature requests are in motion. read moreread more
Forum Monetization & Sustainability: Conversations about adding subscription fees via Stripe, Patreon, or BTCPay highlighted legal, UX, and community-growth considerations. read more
Recommended Reading for CM & UX: Members shared book recommendations on community management, UI/UX fundamentals, and organizational design—including “Reinventing Organizations.” read more
Cloudflare Outage & Rebuild Failures: A transient npm registry outage blocked ./launcher rebuild; reverting proxy settings or waiting for Cloudflare restoration resolved it. read more
Hashicorp Nomad Support: Interest in deploying Discourse across multi-node Nomad clusters surfaced, with community members sharing registry-based workflows. read more
Enable-Notifications Banner: A new theme component prompts desktop/mobile users to enable browser notifications, with day-based frequency and light/dark support. read more
DM User-Limit Inconsistency: Lowering chat max direct message users to two produced confusing UI states when creating new group chats, prompting a review of limit enforcement and error messaging. read more
Emoji & Icon Integration Issues: The Côte d’Ivoire flag 🇨🇮 failed to render due to diacritic mismatches in the emoji gem, while the FontAwesome Pro plugin missed certain default icons—both now under review. read moreread more
sam announced and demoed the AI Artifact User storage, showcasing the first fully in-forum, AI-powered survey Artifact and seeding ideas for games and sophisticated polls.
tobiaseigen diagnosed the tag group editing bug, tracing it to bespoke limits from the max_tag_search_results setting and helping drive a targeted fix.
keegan provided key design suggestions for the header dropdown, including overflow nav styling and read-state dimming in the notification menu experiment.
Lilly guided users on safely pasting images into markdown tables in this support topic and clarified deprecation‐migration steps for theme components facing Ember 6 changes.
Thanks for reading, and I’ll see you again next week!
Community: Use of Flags
TonyG raised concerns about users weaponizing the flag system in post 1 and KhoiUSA proposed disabling flag privileges for abusers in post 2.
Migration: Trail-Journal to Discourse dsims described migrating his 2010 thru-hike blog into Discourse in post 1 and cocococosti applauded the design & map view in post 2.
Support: Foundation theme?
A user asked why “Default” was renamed to “Foundation,” HAWK clarified the change in post 2 and sam explained new core themes in post 5.
Announcements: Customer Projects Webinar Danielle announced the “Meet the Discourse Customer Projects Team” session in post 1 and tobiaseigen directed folks to past webinar examples in post 7.
Dev: Top-level @outletArgs david showed how @outletArgs.foo can now be @foo in connector components in post 1 and noted no rush to deprecate the old API in post 4.
Bug: “7d” appended to FQDN odhiambo reported email test links like …or.ke7d… in post 1 and NateDhaliwal traced it to the tests-passed beta branch in post 2.
Support: Saved Replies (Templates) Rubi asked about restricting Saved Replies to moderators in post 1 and Moin explained using category security for template access in post 2.
Support: Group Chat Channels HAWK walked through creating a DM group chat in post 3 and Moin confirmed that channel permissions flow from #category settings in post 7.
Support: Sidekiq Idle Behavior Crocodilus_CZ worried that Sidekiq was “idle” in post 1 and Bas showed a live graph proving idleness is normal in post 2.
Support: Granting Admin Access WolfpackFan couldn’t finalize an admin invite in post 1 and JammyDodger realized they accepted with the wrong user session in post 2.
Bug: Bulk Actions → Update Notifications WolfpackFan found that confirming with no option selected muted topics in post 1 and Lilly reproduced it in post 3.
Support: Modernizing Inline Script Tags Curtis_Rueden saw an admin warning for script-tag-hbs in post 1 and david pointed to the replacement “Discourse Topic List Sidebars” component in post 2.
Community: Chat-First Collaboration Design nolo unveiled a chat-centric theme demo in post 1 and invited feedback on using Discourse as a dedicated collaboration platform.
Feature: Full-screen Chat by Default martin added a hasNoPreferredMode helper for chat mode in post 7 and nolo explored hiding the collapse button in post 9.
Bug: MathJax in Poll Options ascension.forum reported MathJax failing inside polls in post 1 and linked to a known issue in post 2.
Theme: Topic List Previews (TLP) Dimava set custom thumbnail dimensions in post 652 and added a suggested fix for recommendations in post 653.
Plugin: Survey Component Fix david corrected Font Awesome icon names in post 2 and nathank confirmed it now works in post 3.
Feature: Recurring Events Topics opcourdis asked why recurring events don’t spawn separate topics in post 1 and sam acknowledged it’s a feature request in post 2.
Support: Disable Emoji Shortcuts in Chat Shauny disabled emoji shortcuts globally yet saw them in chat in post 1 and ondrej confirmed the inconsistency in post 2.
Bug: Composer Resizing on Tablets Moin couldn’t adjust composer height on iPad in post 1 and Richie replicated it on Safari in post 2.
Plugin: Landing Pages JS Customization MihirR asked if custom JS can be added to landing pages in post 145 and merefield noted Ember component packaging in post 146.
General: DNS4EU Public Resolver patrickemin wondered if DNS4EU improves site security in post 1 and Falco explained it’s a user-side resolver only in post 2
david introduced top-level @outletArgs support in 370678/1, merged the new plugin outlet for Category Settings #Images in 370349/3, and guided modernization of inline script tags in 370554/2.
sam acknowledged the recurring-event topics feature request in 370600/2.
Lilly reproduced the Bulk Action Notifications bug in 371074/3.
HAWK clarified the Default→Foundation theme rename in 370753/2 and detailed group chat setup in 371088/3.
Danielle kicked off the Customer Projects Team webinar announcement in 370693/1.
Falco clarified that DNS4EU is only a public resolver in 371193/2.
Bas confirmed idle Sidekiq is expected in 370988/2.
Share theme (component) translations Moin released the Share theme (component) translations plugin to export and import translations made in the Discourse interface, easing multi-language theme collaboration. read more
“Last Seen” User Card compatibility tshenry addressed breaking changes in core by adding a compatibility shim so the Last Seen User Card theme component works again on v3.4.6 instances. read more
Trust-Level Avatar Flair update tshenry continues modernizing the Trust-Level Avatar Flair component for upcoming core changes, preparing for a Glimmer-based rewrite. read more
Order search by last read date sam merged support for order:read (shortcut r) so you can sort search results by the date you last visited topics. 371770
Event Location & Description fields joffreyjaffeux added a new location field with pin icon and a multi-line description to calendar events. read more
Upcoming Events filter
The Calendar plugin now lets you toggle between All upcoming events and Events you’re going to on the Upcoming Events page. read more
3.5.0.beta7 release hugh announced 3.5.0.beta7 with smart link editing in the composer, invite-tracking improvements, unique invite icons, and numerous plugin UX enhancements. 370633
3.4.6 Stable Release hugh published 3.4.6 with security updates from HackerOne and community reports—sites strongly encouraged to upgrade. 370631
Bug
Invalid date in Right Sidebar Blocks on Safari Neil_Evans2 and JammyDodger reported “invalid date” in the upcoming-events panel on Safari. joffreyjaffeux diagnosed a single-digit date issue and merged a fix in the calendar plugin.
Calendar event date regression
After an update, calendar events showed odd date formatting due to localized quotes. joffreyjaffeux and yaran landed fixes in PRs 753/754. read more
Can admins no longer see who deleted a post? Moin and saquetim traced a regression in post-actions Glimmer conversion that hid deleted avatar/time. A PR was merged to restore “deleted by” info. 370551
Components list not updating after deletion nolo and RGJ spotted that deleting a theme component hid others until full reload. awesomerobot fixed it in core PR 33364. read more
MathJax in poll options joffreyjaffeux applied a “dark magic” patch to interaction between Discourse Math and the Poll plugin, restoring MathJax in poll choices. 370632
Bulk actions mute-without-selection bug
Deleting or muting via bulk action with no option chosen still proceeded. Core PR 00c97178 now disables the confirm button until selection. 371074
Handling Video Compatibility in Forums merefield reminded everyone to use external hosts (YouTube/Vimeo) until Discourse can auto-transcode uploads for cross-browser support. 371540
Admin API for AI Web Artifacts MachineScholar proposed and documented an API for manual artifact creation/editing. Tracked in the separate feature topic: 371297
Reply-in-Line back to Chat oshyan requested quote-reply in Chat alongside threads. Discussion covered UX trade-offs and existing channel settings. 372124
Easy Python→Ruby jump? MachineScholar asked about learning Ruby for plugin work. bletch detailed differences and stressed Ember/JS client knowledge too. 371962
Toggle Whisper visibility
Whispers now obey group membership strictly—if you’re removed from whisper_allowed_groups, you lose visibility of your old whispers too. 181616
Support
Hide keyboard-shortcuts button Jerome-cockpitLAB wanted to remove the sidebar icon. NateDhaliwal provided a quick CSS snippet to hide it:
Upgrade-lag during rebuild ice.d saw post-upgrade sluggishness; merefield explained queued Post rebakes can spike Sidekiq jobs and advised waiting for backlog to clear. 371717
pHneutre raised ecological and ethical questions about AI in Discourse in AI-free Discourse—discussing sustainability, transparency, and per-user opt-out: read more.
saquetim published a guide on migrating from widget-based to Glimmer components for themes/plugins; enabled by default on Meta in Upcoming post stream changes….
Moin reported the composer More menu opening behind the header on tablets; community demoed a limited-height style in Composer more menu partly hidden….
Introducing our new composer, making writing on Discourse easier than ever: lindsey unveiled the new rich text editor with WYSIWYG formatting, toolbar buttons, and immediate Markdown rendering (https://meta.discourse.org/t/-/369779/1)
Content localization and automatic translations are now ready: nat announced built-in manual and AI-powered translation features for multilingual support (https://meta.discourse.org/t/-/370000/1)
Messages section moved to single sidebar link: The “My posts” and “My messages” links were consolidated into one community link; admins shared how to restore defaults if you’ve customized your sidebar (https://meta.discourse.org/t/-/372616/12)
#Hosting
Bundling more popular plugins with Discourse core: david detailed plans to ship select community-favorite plugins in the core repo, disabled by default but easier to keep up-to-date (https://meta.discourse.org/t/-/373574/1)
An upgrade knocked my site offline; how long until it’s restored?: Scott-CC asked about the “Oops” rebuild process; pfaffman walked through ./launcher rebuild and PostgreSQL updates (https://meta.discourse.org/t/-/373394/13)
Content Localization – Manual and Automatic with Discourse AI: nat published detailed docs on configuring translation settings and Discourse AI behaviors (https://meta.discourse.org/t/-/370969/1)
New composer inserts double line breaks when pressing return key: Users noted return-key behavior differs from Markdown; sam recommended Shift+Enter for line breaks and dialed in UX parity (https://meta.discourse.org/t/-/373229/7)
Allow @mention notifications in muted topics?: Shauny argued for mention alerts when a topic is muted; mcwumbly noted mute means “don’t show anything”—further UX exploration underway (https://meta.discourse.org/t/-/373978/2)
Wish list: standard key combo to submit from anywhere: pento merged Ctrl/Cmd+Enter support for FormKit-based forms and updated the user notes plugin accordingly (https://meta.discourse.org/t/-/234055/4)
Option to mute notifications for certain badges?: Shauny proposed separating badge and watched-topic dismissals; discussion continues on balancing simplicity vs. granularity (https://meta.discourse.org/t/-/373990/1)
Allow the ability to Edit post on rejection: ice.d asked that the review-rejection PM include an inline editor; community interest is high for smoother revise-and-resubmit flows (https://meta.discourse.org/t/-/373992/1)
Force users to pick category: renato guided use of the “Default composer category” setting when the composer is locked until category selection (https://meta.discourse.org/t/-/373164/2)
Make “/my” work for all possible links to current user: Moin uncovered case-sensitivity in /my/messages/group/GroupName; core will make this route case-insensitive (https://meta.discourse.org/t/-/373973/1)
Error in changing topic owner: Jagster explained ActivityPub’s limitation with federated posts and suggested moving topics under non-federated categories first (https://meta.discourse.org/t/-/373203/9)
Whisper entire topic?: tknospdr weighed soft-private vs. CSS-based hacks for “unlisted” content; consensus leans to category-based access control for clarity (https://meta.discourse.org/t/-/373766/12)
Activity by the @team Group
A selection of 20 contributions from our Discourse Team this week:
nat championed the rollout of content localization in 370000/1 and authored the setup guide at 370969/1.
sam clarified Shift+Enter for line breaks in the new composer in 373229/7 and refined full-screen composer behavior in 372859/6.
lindsey closed the composer feedback loop by encouraging bug reports in Support at 352347/156 and reassured users about preserving the Markdown mode in 373231/3.
awesomerobot debugged /my group routing at 373973/7 and helped restore sidebar links for custom configurations in 372616/12.
david outlined bundling popular plugins in the core at 373574/1 and weighed in on the dynaloc tag naming in 373725/4.
Lilly diagnosed a restore-schema migration error and recommended DROP SCHEMA backup CASCADE in 373630/3.
renato explained HTML sanitization choices in the new composer at 369779/11 and enhanced Markdown-image input rules in 373228/11.
Introducing Core Themes hugh announced the launch of built-in, non-editable core themes—Horizon and Foundation—which ship with each Discourse release and cannot be directly edited. read more
Themeable site settings are now available martin detailed how themeable site settings allow themes to override a subset of core settings by defining theme_site_settings in about.json, with initial support for enable_welcome_banner and search_experience. read more
Webinar: Migrating from Khoros to Discourse Danielle invited the community to a live webinar on 2025-07-16 covering migration of members, content, and custom plugins, with plans to post a recording soon. read more
Site feedback
How plugins moving to core is communicated pacharanero raised Site feedback on updating plugin topics to reflect bundling in core, leading to discussion about using the new included-in-core tag and refining announcement categories. read more
500 Errors while using meta
Several users reported intermittent 500 errors on meta, suspected to be linked to recent auto-captioning changes; the team is investigating based on logs and browser console errors. read more
Support
Plugin repository hijacked Roi discovered a “Repojacking” exploit via a compromised plugin, prompting RGJ and david to implement rebuild checks that abort on references to github.com/discoursehosting/. read more
There used to be a search bar. Where did it go? Cate_Soule noticed the missing global search UI on beta builds; NateDhaliwal pointed out that it’s now a theme setting in Horizon/Foundation. read more
Cannot update Discourse anymore SubStrider’s rebuild failed due to plugins now bundled in core; the resolution was to comment out or remove extra git clone lines as outlined by david. read more
How exactly do I get people to use my forum? Johnny_McIvor asked for growth strategies—HAWK emphasized solving user needs; merefield and Ed_S suggested consistent head posts and weekly discussion threads. read more
Seeking advice – does it make sense to switch from Discord to Discourse? Stonley weighed a move from Discord; HAWK recommended early buy-in, community surveys, and pilot groups; NateDhaliwal shared migration case studies. read more
Email receive issue Ethsim2 debugged inbound email bounces; supermathie guided through log analysis, pinpointing misconfigured return addresses and SSMTP settings. read more
Installation
Bitnami Discourse container image is deprecated Falco reported that Bitnami will no longer update Discourse images post-Broadcom acquisition, urging self-hosters to switch to the official Docker setup. read more
Stuck in “Updating…” state after interrupted upgrade
Several admins were blocked on a perpetual upgrade screen; community tips including the reset button and clearing old upgrade jobs resolved the issue. read more
Error installing theme from GitHub itd-john encountered Errno::ENOENT: No such file or directory when installing the Mint theme; solution was to remove extraneous __MACOSX folders from the ZIP. read more
Feature
Plugin and theme component signing elmuerte proposed using Git commit signatures and a Discourse keyserver to verify plugin authenticity; discussion covered SRI, key revocation, and admin UI warnings. read more
Invite experience could be more streamlined with social logins sunflower suggested showing social login buttons on the invite link sign-up form to reduce friction; the team discussed form flow enhancements. read more
Add option to receive own posts by email mnalis requested emails include self-authored posts; Moin noted mailing list mode already supports this, albeit at the cost of full-list delivery. read more
Dev
Added PluginOutlet to SubCategoryItem tomve added a new outlet in templates/connectors/SubCategoryItem for theme customization; david provided review feedback. read more
Showing different content for mobile view in a .gjs file Alteras and david demonstrated how to import the site service and check site.mobileView within a Glimmer component for conditional rendering. read more
Announcing themeable site settings (developer guide) martin posted a dev-focused sister topic explaining the config/site_settings.yml and how to define theme_site_settings in a theme’s about.json. read more
UX
Rename “Private Topics” to “Personal Message Topics” RGJ highlighted confusing terminology in user profiles; the PR to change the label shipped in core Discourse. read more
Suggested improvements to plugin page merefield requested a default sort by enabled on the Installed Plugins page now that more plugins ship in core; discussion on UI filters ensued. read more
Prominent theme selector in header patrickemin asked for a top-bar theme toggle to let users switch between a blog-style theme and a streamlined support theme more visibly than the sidebar picker. read more
Hide option to create Group Chat awesomerobot noted you can set Chat max direct message users to 1 (or add CSS #new-group-chat { display: none; }) to disable group chat creation. read more
Migration
Migrated from XenForo to Discourse: Overview SubStrider shared a deep dive on moving 2.5 M posts and 79 K users from XenForo in 4 days, including keyset pagination and two-pass imports for merged topics. read more
tobiaseigen reviewed many plugin topics for core bundling, updated the Discourse Subscriptions Plugin topic to reflect its new core status read more, and assisted Roi in Discourse User Notes rebuild fixes read more.
david responded to the Plugin repository hijacked exploit by merging Docker checks aborting on discoursehosting references read more and guided Ember API usage for mobile view detection in the mobile content topic read more.
martin provided developer guidance on themeable site settings structure in the dev-focused topic read more and joined discussions around category badge styling in UX threads.
awesomerobot offered multiple CSS workarounds: disabling group chat in Hide option to create Group Chatread more and patching the FKB Pro theme homepage layout read more.
nat clarified AI translation quotas and backfill settings in Content Localizationread more and debugged embedding model configuration for Discourse AI in Can’t set AI embedding modelread more.
Danielle organized and moderated the Webinar on Khoros migration, ensuring attendees could access Q&A and follow-up resources read more.
hugh spearheaded the Introducing Core Themes announcement, unveiling Horizon and Foundation as new default themes read more.
HAWK contributed community growth advice in the How exactly do I get people to use my forum? discussion read more.
davidb fixed the “Private Topics” terminology across the UI in Rename … Personal Message Topicsread more.
Lilly assisted with guidance on removing compromised plugin references in Plugin repository hijackedread more and merged a fix for hiding the lock badge icon in the Hide Lock Badge Icon theme component read more.
Thanks for reading, and I’ll see you again next week!
sam shipped a refreshed topic filtering UI with keyword search and autocomplete in New topic filtering UI New topic filtering UI
hugh unveiled a visual refresh for colour palettes, complete with live previews and status labels in A new way to manage colour palettes A new way to manage colour palettes
Saen asked for admin wrench tools on small action posts (pinned/closed messages) directly from the UI in Admin tools/wrench on small action posts Admin tools/wrench on small action posts
sam shipped the enhanced topic filter UI (375563/1), clarified rollback steps for bundled plugins (375307/4), and outlined safe defaults for AI helper locale caching (298867/6).
david explained client-side asset handling for disabled plugins in the Bundling more popular plugins discussion (373574/23) and guided on translation memory automation.
j.jaffeux resolved the locale-sensitive image grid bug in Automatic images grid… (375499/14) and pushed fixes for German language support.
awesomerobot corrected the quote expansion layout in ‘Expand quote’ arrow… (375067/7) and requested the UX fix for group navigation in Can the “groups” link…" (375106/3).
hugh introduced the new colour palette admin UI with live previews in A new way to manage colour palettes (375188/1).
HAWK chimed in on the “neoforum” concept and branding in Marketing Suggestion (375373/3).
schleifer welcomed the hack-repo resolution in Third-party plugin repository hijacked (374703/14).
Lilly spotted the groups link inconsistency on /admin/users and flagged it in Can the “groups” link…" (375106/2).
Saif advocated for a voice recorder component to support AI assistants in Voice Recorder Component (215621/141).
saquetim announced the widget rendering EOL timeline and deprecation warnings in Upcoming EOL for the widget rendering system (375332/1).
Additional contributions:
sam helped debug Onebox URL 404 errors in 375567/13.
david guided Crowdin string merges during the plugin bundling in 373574/27.
Thanks for reading, and I’ll see you again next week!
Take the Discourse Community survey!tobiaseigen kicked off a week-long drive for feedback with a community survey, later refining embed issues and sharing options in follow-ups (post #3, #20).
Introducing our new composer continued to spark UI and dev tool discussions, as merefield and renato fielded questions on system specs in the rich editor (post #41, #44).
Site Feedback
Categorizing bug and ux issues explored whether topics belong in Bug or UX, with sam and chapoi debating a simplified Feature/bug split plus tags for design concerns read more.
Installation
10-year self-hosted admin asks about launcher cleanup led to best practices for ./launcher cleanup, showing how to prune containers and reclaim disk space (post #1, #2).
Minimizing Docker image size saw featheredtoast propose *-web-only builds that omit Postgres/Redis libraries, cutting overhead for self-hosters read more.
Support
Convert a forum into a real app?chapoi pointed to existing efforts like Dishub and Discorkie, while alltiagocom weighed PWA vs native development read more.
Mute group DMs uncovered a hidden toggle at /my/messages/group/<group> to enable or disable notifications without leaving the group (post #8).
How to create autoresponder using automation demonstrated configuring Discourse Automation for out-of-office replies, resolving a group misconfiguration read more.
Export user list with details reminded admins that /admin/users/list/active → Export delivers a CSV to your inbox, covering IDs, names, emails, and more read more.
Dev
Styling with CSS variables sparked a conversation about using broad component classes (e.g. .btn-primary) over global selectors like button, preserving semantic clarity in theming read more.
Glimmer change detection troubleshooting revealed that plain objects in @tracked arrays don’t auto-render, prompting a switch to @tracked class instances for reliable updates read more.
Front End Route queries on plugin scaffolding reminded devs to share GitHub links for code review—advice that surfaced in a CI config issue investigation read more.
Feature
Comprehensive action log pitched a “View Full History” link on posts/topics to chronicle every edit, flag, and mod action in timestamped order with filtering options read more.
Add Edit to wrench menu proposed surfacing Edit Topic/Post alongside Delete and Hide in the always-visible wrench, with shortcuts (E) as an interim UX read more.
Avatar decorations plugin? discussions revived interest in aura or GIF overlays around avatars, connecting to earlier Avatar Frame components see example.
Event attendee limits reached beta completion with a PR by sam to cap registrations per event in the Calendar plugin read more.
UX
Clickable components vs Edit button tackled reducing mouse travel by making table rows or titles into links, exploring Ember connector constraints read more.
Missing convert icon on theme controls was flagged and labeled pr-welcome, with a community PR aligning it with the component list icon set read more.
Off-Topic flag wording audit called for unified text across desktops and mobiles to minimize confusion on first-post vs reply flags read more.
Improved notifications UI sketched a per-tab Dismiss all button and rethought the “View All” arrow to better match expected behavior read more.
Theme Components
Leaderboard rank in usercard saw chapoi release a component displaying #3-style badges next to cheers on the usercard read more.
AI Conversations – Sidebar Search delivered a mini search box for in:messages queries in the AI chat sidebars, packaged as an add-on read more.
AI bot icon link update by awesomerobot now opens the AI interface in a new tab across both composer modes for consistent access read more.
Community
Discourse for educational communities by maiki laid out challenges and strategies for K-12 use, from privacy to moderation to ephemeral chat retention read more.
Unboxing Discourse 3.5:Discourse unveiled the latest Unboxing Discourse 3.5, showcasing the new Horizon theme, revamped composer, improved dark mode, and automatic translations.
Syncing iCal/ICS feeds into Discourse topics:ShiverTimber4973 shared a Python script to pull .ics feeds and create or update topics as calendar events (read more).
Official Discourse Model Context Protocol (MCP):sam kicked off an MCP spec on GitHub to standardize LLM interactions with Discourse data.
Current Projects – August 2025:lindsey detailed a sneak peek in Current Projects – August 2025, including lightbox upgrades, core authentication service tests, and welcome banner improvements.
Discourse 3.5 is now live!:hugh announced the 3.5.0 stable release, highlighting major UX upgrades, a modern theme, enhanced color management, and built-in translation.
3.5.0.beta9: Color palettes & welcome banner in core:hugh also summarized the latest beta9 features, with improved palette previews and the return of the welcome banner to core.
Unable to set default to Markdown mode:GaurangBlaze reported that saving default_composition_mode to Markdown didn’t stick; martin traced a UI bug and guided on backfill status.
Can I force existing members to re-register?:matt_smart asked how to prompt ten-year members to update custom fields on next login, and chapoi showed the built-in “Field Requirement” workflow in this topic.
Can I just tar /var/discourse and run on a new server?:Monikas wondered about raw folder moves; pfaffman linked to a reliable rsync migration guide.
Is backup enough to restore everything?:alltiagocom confirmed that including app.yml, uploads, and /admin/backups is essential per merefield’s advice in this thread.
Dropping iOS 15 & old browsers delayed:david posted that the legacy browser removal is postponed until after the 3.5 stable release to give self-hosters more time.
Custom Summary Gist:Lhc_fl released the discourse-custom-summary-gist plugin, allowing users to tailor AI-generated summaries with a [summary] block.
Site Management (#SiteManagement)
PDF support in Discourse AI:MachineScholar asked about RAG “chat-with-your-PDFs” and sam confirmed PDF upload support is on the roadmap (discussion here).
Translations (#Translations)
Offer to help: English ↔ Polish translation:MachineScholar volunteered to assist with the Polish translation effort, leveraging a decade of local expertise.
Error with Tooltipify-words component:Shauny’s custom theme broke on 3.5; Arkshine merged a fix in the GitHub repo.
No more live reload with CSS modifications:rahim123 noticed CSS live-reloading was disabled on production; RGJ confirmed this change in the no-reload topic.
Add CLI warning when app.yml is missing:Ethsim2 proposed clearer error messages for launcher bootstrap without app.yml, spurring discussion in this thread.
Thoughts on automated AI translation (content-localization) by tvavrda explored how authors can control AI-generated translations and ensure clear labeling of original content read more.
Choosing first day of week in calendar (calendar-and-event) rolled out a new site setting for Monday, Sunday or Saturday week starts Week Start Config.
Smoother color palette editing (color-palettes) by hugh unveiled a redesigned interface for creating and previewing light/dark mode palettes Palette Preview.
Bulk Export of Raw Post Sources with Markup requested by soeren-1 to download raw Markdown of entire documentation topics instead of manual copy-paste Export Workflow.
Multi-language preferences for displaying Original Content (content-localization) by nat proposed letting multilingual users select multiple supported locales so they see posts in their actual original language Locale Controls.
Automation script: Move topic on close (automation, Plugin) from chapoi provided a Discourse-Automation example that auto-moves topics between categories when they are closed Move on Close.
Why isn’t the checklist plugin a Theme Component? (checklist) by NateDhaliwal dug into why the built-in checklist plugin still uses plugin.rb rather than a modern theme component Checklists in Core.
Rendering “TypeError” with theme components after update (Bug) by piffy exposed null-reference errors in custom components; j.jaffeux and david traced it to theme caching and published commands to clear the cache via CLI Cache Flush Fix.
Forum navbar is repeating (Bug) by Headless saw duplicated navbars after a rebuild due to an outdated component; safe-mode debugging and component isolation helped isolate the culprit Navbar Debugging.
Quoting with content localization selects the language the user sees (content-localization, Bug) by nat revealed quotes render in the reader’s translated view rather than the original, causing confusion in multilingual threads Quote Localization Quirk.
Forum not working after update – what’s missing? (Installation) by wenqin ran into missing container hints on rebuild; nat requested full logs to identify leftover plugin lines in app.yml Rebuild Hints.
WARNING: Port 443 of computer does not appear to be accessible using hostname (Installation) surfaced when using Cloudflare’s orange cloud; advice covered disabling the proxy or adjusting DNS to satisfy Let’s Encrypt 443 Accessibility Workaround.
I’m currently being flooded with spam, what can I do? (Support) by Tealk asked for anti-spam tactics; awesomerobot and RGJ pointed to core guides, watched-words, AI filters and manual IP bans Spam Mitigation Strategies.
How can I make my forum look like this one? (Support) by sweet_Girl reverse-engineered a competitor’s layout; chapoi identified Topic List Previews, Minimal Category Boxes and font tweaks to match the design Theme Component Breakdown.
Android bottom navigation bar color issues in Discourse PWA (mobile, Support) by Damian_Boon flagged unreadable icons on light nav bars; dax and Don explained PWA manifest limitations, device variance, and future design review plans PWA Bar Color Discussion.
Adding a header link for Guests Only (Support) by peternlewis needed a “Create Account” link for anonymous visitors; Moin offered CSS to conditionally hide/show links via the Custom Header Links component Guest-Only Link CSS.
Can site visitors vote on a poll if they do not have an account? (polls, Support) by Eric_Wynn confirmed that poll voting (like all interactions) requires an account—anonymous voting isn’t supported Account-Required Voting.
Expand bulk select to personal messages for non staff users (bulk-actions, Feature) by ondrej requested non-staff users get the same PM bulk-archive tools as staff, simplifying inbox cleanup PM Bulk Actions Request.
#Hosting
How to Perform Major Discourse Maintenance with Minimal Downtime? (#hosting) by emonunix explored blue/green strategies and Sidekiq tuning; pfaffman recommended two-container builds and load balancers, while merefield noted rebuilds as the primary risk factor Zero-Downtime Rebuild Approaches.
Multilingual user feedback on Automatic Translations (Community, ai, content-localization) by nat consolidated user suggestions on labeling, backfill rate controls, and SEO impacts into a dedicated summary thread Feedback Summary Post.
manut highlighted a Calendar plugin custom-fields bug where ProseMirror editor failed to insert [event] tags for new fields, supplying a regression test.
pmusaraj released the AWS SNS push plugin #384054/1, unraveled OIDC mapping in #383894/2, and steered sensor-alert integration via scoped API keys in #383924/2.
Renaming tests-passed to latest: as part of the new versioning strategy, david announced that the tests-passed branch is now called latest, updating the -dev suffix to -latest for builds (read more).
iOS 26 fixed position bug: community members reported input focus issues with fixed elements on ios after iOS 26.0.1, and pmusaraj reproduced the problem, requested a screen recording, and confirmed the fix in iOS 26.1 (read more).
Discourse 3.6.0.beta1 release:hugh summarized new features such as color palette editing (Announcements), user fields on signup, AI-powered drafts, and plugin improvements to discourse-activity-pub and discourse-brightcove (read more).
Discourse 3.5.1 stable release: the maintenance release includes security fixes via HackerOne advisories and over a dozen bug fixes, including TOS links in signup flows and palette migration fixes (read more).
Themeable site settings discovery: themeable settings are now surfaced directly within the All settings admin page, making it easier to customize site appearance without code changes (read more).
Bundling popular plugins into core: the cakeday plugin was merged into core, giving all sites built-in cake-day badges without separate installs (read more).
Plugin
National Flags plugin fork: with the original #national-flags plugin no longer maintained, chapoi published a functional fork on GitHub, preserving glimmer support and country name dropdowns (read more).
Feature
Native voice message support & transcription: a new accessibility request calls for first-class audio recording and AI-powered transcription directly in topics, inspired by messaging apps for greater inclusivity (read more).
Arabic search orthographic normalization: community members highlighted missing support for hamza variants, Persian ya/kaf forms, and orthographic equivalence in Arabic searches, prompting a pr-welcome for implementing Unicode NFKC and custom mappings (read more).
Warn when replying to old topics:CT075 revived the discussion around adding a confirmation prompt when replying to topics older than a configured age, seeking improvements over the existing warn_reviving_old_topic_age warning (read more).
Move Posts modal: show recent topics:jrgong proposed UX enhancements to display the five most recently visited topics in the “Move posts to existing topic” modal to streamline splitting long threads (read more).
Split Automations into Triggers & Actions:noahl suggested refactoring the automation workflow so admins can mix-and-match triggers (e.g., topic created) and actions (e.g., reply, tag, run LLM call) in a modular fashion (read more).
Quick-add Tags To Topic component:NateDhaliwal’s Theme component lets topic authors quickly add tags via a convenient button, demonstrating theme-level extensions for everyday workflows (read more).
Dev
RFC: new versioning strategy:mcwumbly clarified that Discourse remains a rolling release but will adopt a YYYY.M.Z versioning scheme with ESR streams, accompanied by end-of-life diagrams for stable and beta branches (read more).
Viewport-based mobile vs desktop detection:david replaced the user-agent switch with a pure viewport-width check for mobile/desktop modes, improving consistency across tablets and modern devices (read more).
Bug
Horizon theme review queue malfunction: users on the Horizon theme reported broken dropdowns in the review queue; tgxworld, tobiaseigen, and RGJ traced the issue to the legal compliance plugin and verified the fix (read more).
DiscourseHub freezing on iPad:Jagster’s report led pmusaraj to push a TestFlight beta fix, restoring smooth navigation in DiscourseHub (discourse-hub) (read more).
AI Gists button glitch in PMs on mobile:NateDhaliwal flagged the AI Gists button showing with no summary text in PMs; awesomerobot merged a fix to hide it where unsupported (read more).
Cannot access “My Themes” in Theme Creator:NateDhaliwal uncovered a 404 error when tapping My Themes on mobile; Lilly diagnosed a routing bypass and patched it in #384595 (read more).
Missing gap in returning user notice: CSS for the icon was dropped, collapsing the spacing; chapoi quickly restored the CSS rule in #35093 to match new-user notices (read more).
Croatian date formatting error: the %Y%y duplication in js.dates.long_with_year caused “252025” years; Moin guided on-site text overrides and Crowdin fixes to correct yyyy usage (read more).
Praise
Favorite Discourse instances: in Praise, pacharanero and NateDhaliwal showcased live communities—from Neural DSP to NHS Digital and Caddy—celebrating Discourse’s global footprint (read more).
Support
Deploying on Windows Server:MoRanYue explored unsupported Windows installs; Falco recommended running Discourse on a Linux VM or via WSL for production support (read more).
Backup download link expiration:winterk0rn’s immediate link expiry was traced to concurrent Docker Manager updates; pmusaraj advised scheduling backups when no rebuilds are in progress (read more).
Muting all categories except watched:winterk0rn used Data Explorer to batch-generate category lists for group notification defaults, guided by Moin’s SQL snippet for one-step muting across many categories (read more).
david led the rename of the tests-passed branch to latest (read more) and overhauled mobile/desktop mode detection to rely on viewport width (read more).
hugh authored the detailed release announcements for 3.6.0.beta1 (read more) and 3.5.1 (read more), spotlighting security advisories and UX enhancements.
chapoi published the community-maintained fork of the National Flags plugin on GitHub (read more) and restored missing CSS for returning user notices in #35093 (read more).
pmusaraj triaged and fixed critical mobile bugs, reproducing the ios fixed-position issue with a screen recording (read more), shipped a DiscourseHub freeze fix via TestFlight (read more), and resolved the hardcoded placeholder on the 404 search input (read more).
Falco contributed diagnostic advice on Arabic search normalization (read more) and provided SSO guidance for invites with external accounts (read more).
tobiaseigen guided the Horizon review queue fix by pinpointing theme component interactions (read more) and supported the discussion on old-topic revival warnings (read more).
mcwumbly clarified versioning frequency and ESR use in the new strategy RFC (read more) and confirmed the merge that prevents title edits from bumping topics (read more).
Lilly investigated the “My Themes” 404 on mobile and desktop, identifying routing bypasses and verifying fixes for the Theme Creator component (read more).
tgxworld enriched release notes with plugin-specific changelogs for discourse-activity-pub and others (read more) and participated in debugging the Horizon theme review queue (#384414/2).
martin merged the CakeDay feature into core as part of the bundled-plugins effort (read more) and improved discoverability of themeable settings in the admin UI (read more).
Thanks for reading, and I’ll see you again next week!
Discourse ID is now available (discourse-id) rishabh announced that Discourse ID can now be enabled on all Discourse sites, streamlining single sign-on across hosted and self-hosted instances. Early feedback on Safari integration came from craigconstantine, and pmusaraj remedied an over-eager Apple App Site Association redirect in post 6. read more
Discourse AI Use Cases and Statistics (ai)
In Discourse AI Use Cases and Statistics, Rubi asked which AI features communities actually use. Falco, NateDhaliwal, and nat discussed adoption rates for AI Summary, Related Topics, and Spam Detection—noting that Related Topics is default on most hosted plans and spam protection blocks “pretty much all” attacks. read more
Should an open Discourse group be moderated? (Community)
Tony001 wondered whether manually approving every post in a public “special interest” group was too “clunky.” ToddZ explained how to limit approval to new users or specific categories, NateDhaliwal weighed the pros/cons of control vs. spontaneity, and Moin linked to a post-review trigger guide. read more
#Site Feedback
Blog posts would be nicer if authored by an identifiable person (Site feedback) nathank observed that companion topics for blog entries default to Discourse, making authors “faceless.” tobiaseigen discovered a bug in the blog theme and, with Falco, corrected authorship going back a year in this thread. read more
Admins inbox lacks discoverability (UX) JustinZ noted that the pulldown for admin group inboxes isn’t highlighted when messages arrive. chapoi moved the topic to UX and confirmed it’s on the radar for future sidebar improvements in Admins inbox lacks discoverability. read more
Behind the Scenes: Our 2025 Prague Meetup (blog)
The official companion discussion for the Prague meetup blog saw 87 team members share memories. In topic 385156, users suggested opening a final-day event for local admins and praised the team’s “chaotic, wholesome” style. read more
Awful experience in iOS Safari (Support ios ux) Shauny documented flickering headers, jumpy scroll, and broken toolbar buttons in Safari PWA/bookmark apps in topic 384862. david traced most behavior to the iOS 26 geometry bug, and merefield commented on device-specific PWA vs. Chrome experiences. read more
RFE: Update emoji flag (Feature emoji) jwheel requested replacing the old Syrian flag emoji after the December 2024 regime change. one1 and z44d confirmed new-flag display on mobile, and j.jaffeux merged unicode 17.0 support in discourse-emojis PR 35340. read more
Repeated activation emails despite confirmed account (Support email)
Chinese-language user John10 was bombarded by activation mails. merefield and Moin dug through /logs, identifying an Net::SMTPUnknownError loop that re-enqueued Sidekiq jobs in topic 384684 and post 23. read more
Chinese category permission vs. New Topic button (Support permissions) LanFeng11 set a category to view-only but still saw a clickable New Topic button in topic 385159. supermathie and Moin explained this is by design and referenced PR 34603 which removed the old unclickable overlay. read more
Advanced Hero Component (Theme component) VibeCommit released a versatile hero-banner component in topic 384945. Moin reminded authors to clean up translated locale files and provided feedback on customization best practices in post 9. read more
Search for localized title/content in Discourse search (Feature content-localization) Falco and Honeyxilia discussed adding a ?tl= filter to search by translated titles in topic 385034. They previewed PR 35299 to add locale filters and teased future AI/embedding-based multilingual search improvements. read more
Localized Discourse ID login page? (Feature discourse-id) nukeador asked why the Discourse ID login at id.discourse.com is only in English. pmusaraj moved the request to Feature and committed to enabling Set locale from accept_language_header plus allow user locale in topic 385229. read more