Dev: Static pages sync: Allowing specific private categories to be synced – NateDhaliwal prototyped a repo structure (post:13), RGJ questioned the need for extra exclusion logic (post:14), and ultimately recommended an include_private_categories setting over toggling excluded_categoriesread more.
Theme component: Quote Callouts updated to use the new API – RowBro shared the updated component via post:40, and Arkshine teased upcoming Glimmer & rich-editor support in post:41read more.
Theme component: Url Composer Templates are fully operational – Drew-ART confirmed the new template’s feature set in post:4 and outlined initial goals in post:1read more.
Support: Discourse App iOS Zoom Issue pinned as solved – the root cause was iOS/Safari’s minimum font-zoom behavior (report), confirmed by chapoi in post:7 and marked resolved in post:9.
Support: Publish txt file for IndexNow integration – Timelord asked about hosting a root .txt file in post:1, RGJ provided the step-by-step in post:3read more.
Support: New users blocked by invite-only before OAuth2 login – Soumya_Ranjan_Mishra ran into “access by invite only” pre-login (post:1), and jahan_gagan recommended toggling off invite only to restore the flow read more.
Feature: Exploring online multiplayer mini-games on Discourse – tom_eric asked about Go/Gomoku plugins and embedding HTML5 games in post:1, while merefield floated AI-driven game ideas read more.
Bug: Sticky header vanishes post-update – RGJ applied the fix after discovering the ticket misrouting (post:20) read more.
Bug: Custom link removed from user cards – ZeroDean found the header submenu plugin unmounted after the latest rebuild (post:1) read more.
General: Discourse as a personal notebook guide – pacharanero shared a blog post on using Discourse for notes, featuring configuration tips and helpful plugins (post:4) read more.
#Data & reporting: Anonymous views spike debated – Ed_S called it an “arms race” with spammers in post:44read more.
mcwumbly updated the Static pages sync topic’s title for clarity (post:19) and proposed a dual-repo approach for public vs. private content (post:20).
chapoi confirmed the root cause of the Discourse App iOS Zoom Issue is enforced by iOS/Safari zoom rules (post:7) and marked the topic solved (post:9).
It was such a plugin-packed day that even our four-legged friends might start issuing pull-requests!
AWS S3 Integration Tutorial: Jim_Starkweather ran into outdated DISCOURSE_S3_REGION references in the 2020 guide and asked when to rake old data; pfaffman stressed environment-level settings and rerunning the rake task post-rebuild. read more
Comment-Only Forum: apoiata wanted a blog-style category where users can only reply; NateDhaliwal and Moin explained how to remove “create” permissions and grant “reply” rights under category Security.
(Limit users rights - #3 by Moin)
AI Micro-Features: iamcapote sketched out persona auto-greetings and enriched AI composer metadata (taglines, tooltips, docs URLs) for clearer bot discovery.
(AI supporting Micro-Features)
Schema Article Markup: tpetrov proposed adding schema.org/Article to doc-category pages so search engines recognize them as formal content rather than generic posts.
(Doc pages - Schema Article)
Time Registration Deprecation: denvergeeks spotted a registerConnectorClass deprecation warning in the Time Registration plugin, illustrating the shift to modern connector registries. read more
twofoursixeight noticed the removal of the necropost warning and suggested adding a secondary confirmation dialog when replying to topics older than two years read more.
Eria211 called to reinstate bumping when editing the first or last post to keep announcement-style threads visible in the latest feed read more.
nathank reported that PDFs sometimes download instead of opening directly, prompting investigation into consistent inline PDF previews (pdf-previews) read more.
hellekin outlined cases where muted tags still trigger notifications after category moves and proposed delaying or revoking those notifications to respect muted filters read more.
gabriel unveiled a new automation to strip upload markdown from deleted posts and tie orphaned uploads into the cleanup job for storage reclamation read more.
DevTeVe and sam tackled reports that AI-generated posts and automation summaries are being cut off by the UI, tracing the issue to provider endpoints and pending fixes in the latest commit read more.
cvx explained that the d-cakeday migration to core disabled the plugin by default in error and opened a PR to restore the correct enablement heuristic read more.
RGJ discovered that help labels vanish in the Automation plugin when the UI language is set to English (UK), revealing a localization gap in automationread more.
pmusaraj and sam noted that custom profile links disappeared from user cards due to component changes, spurring a review of custom-profile-link compatibility read more.
fuzzyk found that the Lazy Videos plugin fails to embed youtu.be short URLs under strict referrer policies, resulting in error 153 and a need for plugin adjustments read more.
deviantintegral reported the MCP User API Key generator failing on Node.js > 20 with unsupported RSA_PKCS1_PADDING, prompting a switch to OAEP padding read more.
ZeroDean flagged that automation emails silently fail when two emojis appear in the subject and called for explicit error messaging in the UI read more.
Moin shared a CSS workaround to add preview images for themes created via the Admin UI by replacing the default SVG pattern with custom uploads read more.
yuriy requested details to troubleshoot the new Welcome Banner font color issue and guided Joe_F through a custom CSS fix in the Admin UI read more.
darkpixlz released a small update to Pyx’s Modern Theme, introducing a scrapped lightbox background and an enhanced search UI for cleaner, more consistent styling read more.
chapoi tested mobile drag-and-drop for the Kanban plugin on iOS, reporting issues with long-press previews and missing drop modals link.
cvx detailed a fix migration PR for the Cakeday plugin integration in core, restoring the intended enablement behavior based on pre-migration settings link.
sam investigated the AI completion cutoff issue, confirming UI fixes landed and advising on log checks and endpoint configurations link.
yuriy requested additional information to debug the new Welcome Banner font color settings in the Admin UI link.
sam committed to reviewing the disappearance of custom profile links in user cards and tracking down the relevant component change link.
Falco confirmed that Lazy Videos embeds behave the same on Meta and suggested checking environment policies for referrers link.
chapoi clarified the use of the “after user update” trigger for automating welcome posts that tag new members link.
Falco diagnosed the Node.js padding error in the MCP User API Key generator and requested OS, NodeJS, and OpenSSL versions to reproduce the issue link.
tobiaseigen and renato addressed WYSIWYG compatibility warnings and block-level spoiler markup issues in the Composer Button Bonanza component link.
gabriel highlighted the new automation that removes deleted-post upload markdown and ties it to the cleanup uploads job link.
blake pledged to update the REST API docs to include the moved invite-link endpoint at /invites.jsonlink.
sam proposed UI improvements for automation errors when emails fail due to double emojis in subjects and discussed log visibility link.
david guided developers to the new plugin outlets for inserting content after the first post and pointed to the post-stream changes guide link.
Falco confirmed that latest-post is a valid filter parameter in the Topics filter route for the MCP, clarifying a perceived hallucination link.
Falco recommended enabling AI bot debugging to monitor tool calls and refine assistant prompts in the AI Bot support topic link.
Hope your notifications stay silent, your threads stay lively, and no puppies got lost in these notifications!
Use user names in participants list manut suggested that calendar events display full names instead of usernames in the invitees list, sparking debate with tobiaseigen, chapoi, and zogstrip on tying this to the site’s name display settings (link).
Disable the automatic jump to the last post after replying tom_eric requested an option to prevent the view from scrolling to the bottom on reply, leading pfaffman and Falco to discuss modifier-key workarounds and past user preferences (link).
Display number of users’ rejected posts in the review queue kris.kotlarek highlighted that moderators often lack context on authors’ history in the review queue, and the new insights tab now surfaces rejected post counts per user (link).
AI-generated multi-language app.yml comments tom_eric proposed an AI-assisted workflow to translate and publish comment-rich app.yml/standalone.yml templates in multiple languages to help self-hosters worldwide (link).
Invite link API endpoint moved to /invites.json Lou asked for a method to fetch all invite links en masse, and pfaffman pointed to the Data Explorer plugin approach for efficient retrieval (link).
Linting consistency for plugins and core pfaffman encountered mismatched Prettier/Eslint behavior in plugins, and sam and david recommended running pnpm i in plugin directories and shared mass-pr scripts for updating lint-configs (link).
Default AI-AGENTS.md for themes and plugins pfaffman drafted a plugin-specific AI-AGENTS.md with customized QUnit, linting, and path instructions, expanding on the core documentation (link).
#Developer Guides
Objects type for theme settings gabriel announced that type: uploads and type: objects are now available for both theme and site settings, enhancing file and JSON handling in custom themes (link).
Run Discourse AI evals Moin suggested adding the ai tag to the “Run Discourse AI evals” guide, clarifying its relevance to the AI plugin and improving discoverability for newcomers (link).
Bogus Dashboard advice on force_https Paul_King noticed a misleading dashboard warning about force_https, and RGJ referred to existing threads clarifying that this setting is hidden and unnecessary for Let’s Encrypt users (link).
Convert categories into tags in bulk chrisc wanted to repurpose categories as tags, and Moin shared rake tasks for bulk tagging and moving topics to preserve metadata before deleting old categories (link).
Disable hover effect on Sign Up/Log In buttons Cate_Soule asked how to remove default hover styles, and chapoi recommended targeting the .sign-up-button class via custom CSS scoped under d-header (link).
Category reordering and fixed positions not working Paul_King reported that fixed category priorities weren’t overriding /latest sorting, and jahan_gagan explained that muted default categories don’t appear on the latest page (link).
MCP User API Key Generator error on Node.js >20 deviantintegral discovered incompatibility of the Discourse-MCP CLI with Node.js < 24, and Falco opened a PR to update the minimum Node requirement to >=24 (link).
Path for custom template CSS Cate_Soule approached Cloudflare integration and asked which file serves custom CSS; Moin advised using a theme or theme component instead of raw file paths (link).
chapoi reviewed full-name display settings in #390176, provided CSS guidance in #390139, and assisted with category ordering checks in #390136.
j.jaffeux continued stabilizing the iOS composer positioning fixes in #388476 and merged the Chat scroll solution in #389942.
Falco pointed out the Shift+Reply workaround in #390189, updated Node.js requirements for the MCP tool in #390073, and removed deprecated AI rake tasks in #352607.
sam clarified plugin vs. core linting nuances in #390104, diagnosed private-content issues in RAG searches in #389792, and corrected the MCP README in #390091.
gabriel showcased the new uploads field type for theme settings in #305009.
zogstrip suggested centralizing name display settings in #390176 and tested mobile thread scrolling in #389942.
david outlined shared lint-configs usage for plugins/themes in #390104.
tobiaseigen backed the full-name display proposal under the existing enable names setting in #390176.
Restrict chat for certain groups: Shauny highlighted the inability to disallow chat for specific users, and Moin suggested using dynamic groups to control chat permissions read more.
Restrict specific topics in a category to members only: lilydjwg requested tag-based permissions for RSS-imported topics, leading mcwumbly and Heliosurge to discuss workarounds and automations read more.
Auto-complete without mouse: pHneutre called for keyboard navigation in contextual pop-ups, with Canapin confirming core support and chapoi outlining debugging steps read more.
Custom invite email domain for hosted sites: Frankz asked how to swap discoursemail.com for a custom domain, and Moin clarified enterprise-tier limits and support contacts read more.
Discourse ai bot not working: Shin_210 struggled to get chat responses; sam guided endpoint toggles and log-based debugging read more.
Multi-instance activity backup + unified multi-site Discourse reader: tom_eric proposed personal cross-site mirroring and an aggregated reader; chapoi and awesomerobot hashed out scope and existing ActivityPub options read more.
Category Exclusion (Blacklist) for Automation Triggers: DevTeVe suggested a “global except these” filter for Discourse Automation, reducing maintenance when new categories are added read more.
Slightly misconfigured email notification: angus spotted a confusing “announcement” email triggered by category moves; Moin linked to a related discussion on announcement notifications read more.
Bug: reaction and reaction-received fail to load the next page: small-lovely-cat found duplicate entries in reaction pagination; nat and others investigated frontend/backend ID mismatches read more.
Incoming email replies do not share the same topic: hellekin reported each email reply spawning a new thread in email-in, seeking thread-detection fixes read more.
Date range seems wrong: manut uncovered missing calendar events when editing dates in post markdown, while zogstrip could not reproduce on a fresh install read more.
Guidance on implementing display name precedence: manut proposed a unified display_name method in serializers; keegan recommended focusing the PR on calendar participants first read more.
Locked, solved, and new topic adornments are misaligned on longer titles on mobile: JammyDodger shared screenshots of badge wraps, and awesomerobot traced the issue to a recently added tooltip component read more.
#Site Management
Understanding PII storage in Discourse: olivia published a detailed guide on stored PII, access controls, and how SSO via DiscourseConnect can minimize data collection read more.
#Sysadmins
Discourse AI: Discord Bot Integration Guide: DevTeVe outlined a webhook-only architecture for Discord Interactions, streaming edits, and recommended setup best practices read more.
mcwumbly reviewed scope and added pr-welcome to Use user names in participants listlink, triaged the whisper-post bug in Adding an invalid tag to a topic creates a whisper postlink, and advocated for a “back” marker in Add an option to disable the automatic jump to the last post after replyinglink.
sam weighed in on legacy badge defaults in Notify on every like should be the defaultlink and adjusted AI-bot endpoint settings in Discourse ai bot not workinglink.
awesomerobot outlined user-level mirroring options in Multi-instance activity backup + unified multi-site Discourse readerlink and debugged mobile badge alignment in Locked, solved, and new topic adornments are misaligned on longer titles on mobilelink.
chapoi advised on request scoping in Multi-instance activity backup + unified multi-site Discourse readerlink and assisted with keyboard navigation debugging in Auto-complete without mouselink.
keegan refined serializer usage in Guidance on implementing display name precedencelink.
olivia authored the PII storage guide in Understanding PII storage in Discourselink.
pmusaraj clarified profile link settings in Custom link suddenly no longer presentlink.
zogstrip merged the whisper-post fix in Adding an invalid tag to a topic creates a whisper postlink and investigated calendar API issues in Date range seems wronglink.
nat debugged reaction pagination in Bug: reaction and reaction-received fail to load the next pagelink.
Falco confirmed model availability in Discourse AIlink.
Keep your chat rooms in line, your event dates spot-on, and your AI bots chatting—see you tomorrow!
HAWK announced organizational changes in Our Commitment to Your Ongoing Success with Discourse (read more), explaining cost‐structure adjustments for long-term sustainability and responding directly to community condolences.
sam unveiled powerful moderation improvements in Search improvements to make community management easier! (read more), including granular bulk-post deletion and new in:all-posts filters inspired by Shopify’s workflow.
patrickemin proposed hiding recent topics from unregistered users in Encourage new registrations by hiding new topics (read more), sparking debate over extending the Gated Topics component vs. creating a standalone solution.
lilydjwg sought a way to restrict topic visibility without moving categories in Restrict specific topics in a category to members only (read more), and mcwumbly pointed to private-topics plugins and nested subcategories.
A user described mismatched threads when replies come via POP3 in Incoming email replies do not share the same topic (read more), prompting questions about Message-ID headers and mail-receiver settings.
pHneutre reported browser-specific issues with keyboard autocomplete in Auto-complete without mouse (read more), and chapoi confirmed behavior across Firefox and Chrome.
Jonathan5 asked how to persist launcher rebuild output to a file in Save output of rebuild to log file (read more), with tips to use tee and ~/filename.log.
beitmenotyou inquired about adding statuses, follows, and profile boxes in Social Features (read more), and NateDhaliwal pointed to user-status and follow plugins.
A moderator highlighted dangerous placement of “Delete User” in the review UI in Moderation UI: Too Easy to Delete a Valid User (read more), and awesomerobot proposed a two-click dropdown refresh.
panic shared CSS for reducing “Mark as solution” padding in “Mark as solution” button has excessive right padding (read more).
copymonopoly asked why super in PostSerializer#raw triggers a 500 error in Why does calling super in PostSerializer#raw cause a 500 error while calling object.raw works? (read more), and the solution came from using prepend instead of reopening the class.
Gunnar looked for release notes for v2025.12.0 in No release announcement for 2025.12.0? (read more), and RGJ clarified that v2025.12.0-latest is still in development.
small-lovely-cat traced an RSpec failure to a changed data-post-id in Bug: reaction and reaction-received fail to load the next page (read more), and zogstrip added a spec before merging the PR.
ZeroDean noted missing user-field placeholders in emails in Field is blank when received via email (read more), requesting a visual cue or link fallback for email dumps.
“We’re making some organizational changes and we want to be direct with you about our plans.” yuriy shared heartfelt reflections read more and featheredtoast offered solidarity read more.
App interviewer in Feature sparked ideas around custom research pop-ups inspired by Anthropic’s Claude and the potential of integrating interviewer bots read more.
PraiseFelicianoTech posted a heartfelt thank you to the community, praising contributions from developers, support volunteers, and self-hosted advocates. philhechoed the sentiment, and HAWKreflected on the recent tough staffing decisions.
Communitystephtara outlined a detailed category structure for migrating her 8k-member diabetic cats support group from Facebook to Discourse, exploring onboarding gates and group-based permissions read more with NateDhaliwal suggesting a how-to plugin implementation here.
Communitystephtara and others weighed in on member invites to control what newcomers see, comparing Discourse’s invite workflow to Facebook’s group model discussion starts and stephtara’s follow-up is here.
Community In the “Introduction / Welcome Topic” thread, stephtara asked for examples of mega-thread introductions and community members shared best practices for spotlighting new users get inspired and see stephtara’s update here.
FeatureRBoy proposed tracking AI usage per persona to optimize resource allocation, picking up on the LLM metrics thread continuation and presenting his persona-tracking idea details.
Featurestephtara revisited the “7 myths why a blog isn’t needed in the discourse core” discussion, questioning best ways to integrate a blog homepage into Discourse catch up with her latest comments here.
Featurerokejulianlockhart noted Discourse’s override of the browser’s emoji font settings, linking to the prior emojis-update thread background and proposing a native-font fallback proposal.
Devpfaffman and NateDhaliwal collaborated on injecting custom intro text into the subscriptions page via CSS, outlining the pure-CSS approach initial solution and the fully formatted snippet here.
Installationone1 encountered a MaxMind 401 error despite valid credentials, and pfaffman walked through verifying environment variables and container config to resolve the issue problem & troubleshooting.
Bugtyped-sigterm reported the “Powered by Discourse” footer overlapping dropdowns in the Horizon theme bug report, JammyDodger confirmed it’s theme-specific analysis, and the issue was pinpointed to /review/settingsdev notes.
Supportsupermathie demonstrated that replying to a circuit-down alert via email CC correctly threaded into the group inbox topic, helping uncover the right reply-conditions original report & test case.
j.jaffeux enhanced Discourse Rewind by adding a user-toggle in preferences, confirmed at post 3 and showcased the updated UI at post 4.
supermathie validated email reply threading under real-world conditions group inbox test and clarified that DISCOURSE_SMTP_DOMAIN is rarely required in ./discourse-setupinsight.
HAWK chimed into the Praise thread, thanking everyone for their support and reflecting on the difficult decisions that led to recent layoffs see comment.
mcwumbly proposed CSS and setting tweaks to emphasize categories in the homepage layout migration thread and probed the Discourse-GitHub user-association logic in the badges plugin feedback.
Falco explained that GitHub contributor badges rely primarily on email matching and offered manual badge assignments for mismatched cases clarification.
May your servers auto-renew like Let’s Encrypt, your forums purr along as smoothly as a migrated cat community, and your day be filled with as much enthusiasm as our meta discussions!