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.