A long-standing design concern was addressed this week: Chapoiannounced that a fix for the Delete Category button being more prominent than the Save button has been merged into the core codebase (fixed). read more
#Plugin
Filipesm raised a critical question about the Discourse Translator plugin’s future, asking whether the team will maintain the traditional translation API approach or if users should migrate to an LLM-based translation method via Discourse AI. The concern centers on cost, with Filipesm noting that hosting an LLM is “not super cheap” compared to a dedicated translation API. read more
Tobiaseigen shared a clever workaround for the Discourse Subscriptions plugin, revealing they replicated much of its functionality using Invoice Ninja with PayPal support, using webhooks and a scheduled cron task to keep Discourse in sync. read more
NateDhaliwal contributed a concise note in the Resenha - Voice Rooms thread, clarifying that to use Discord-style voice rooms without an official Discourse plugin, one would need the Enterprise plan or self-host. read more
A technical issue was reported on the ActivityPub Plugin by Trwnh1, who noted that the published datetime on posts sent via ActivityPub is incorrect when using the “Publish all posts” button: it shows the date of the AP resource creation (2026) instead of the original post datetime (2018). read more
TimMOz requested a granular API scope to list all badges (badges, rest-api), noting that currently only a global scope key or disabling “Login Required” allows listing badges. They are building a server to coordinate Discourse groups and badges with CiviCRM and would prefer not to use global scopes. read more
A discussion on the purpose of primary groups (groups) continued, with Canapin pointing out that the “Show that group’s avatar flair by default” setting is key, while Lilly reminded the OP to search Meta first, linking to a detailed explanation of primary group effects. read more
Lilly offered a technical solution for updating URLs inside polls after changing a CDN (polls). They suggested using discourse remap instead of the rake task, which performs a global regex search-and-replace across all database text columns, including poll_options.html. read more
#Site feedback
A long-running thread on missing images at Meta.discourse.org saw new activity: Canapin reported that the :discourse2: emoji is broken on certain Customization > Theme component topics, likely related to a CDN/S3 bucket URL issue discussed in the chat thumbnails thread. Lilly confirmed the emoji needs a remap or rebake, while Darkpixlz fixed one instance but left another for investigation. read more
In the Discourse Gamification thread, Ted kindly responded to a user who had resolved their own 404/MissingAttributeError on the /leaderboard route, saying “No problem! You had an issue and you posted about it. Glad you got it sorted.” (gamification) read more
A follow-up on Error 500 when moving posts saw Thomas_Rother asking whether a fix, likely from the ActivityPub plugin code, would be included in the next build after being bundled with core. read more
So, if yesterday taught us anything, it’s that you can build a subscription system with a little elbow grease and a ninja, but you’ll still need to rebake your emojis to keep them from crying.
Can’t upload to S3 (Cloudflare R2).Darkpixlz encountered a persistent Sorry, but your upload failed error when trying to set up Cloudflare R2 for uploads, despite following the guides. After troubleshooting the configuration—including a needlessly confusing token system—Lilly identified that the wrong API token type (a general token instead of a specific R2 bucket token) was the culprit. David_Ghost also suggested removing trailing slashes from the CDN and endpoint URLs. The issue was resolved after creating the correct token and cleaning up the URL formatting. read more
Any way possible for non-admins granting badges.Anko127 asked if group owners (rather than just admins) could grant badges, to offload work from the admin team on events. HAWK proposed a hacky workaround: create a custom badge configured to be awarded via group membership, then make the non-admin users group managers so they can add/remove members and effectively grant/revoke the badge. read more
Quick question about the “Powered by Discourse” badge.Raadtotheraad noticed the rainbow hover animation on the Discourse footer badge had disappeared on their instance, even though the badge itself was visible. After a discussion involving NateDhaliwal, Andrew_Rowe, and Canapin, the cause was traced to the browser or OS incorrectly reporting touch capabilities to the browser, which causes Discourse to add touch classes to <body>—disabling hover effects. Canapin noted this can happen when a device has been connected to a touch-enabled peripheral, and suggested overriding it with CSS on self-hosted instances. read more
Backend 502/504 Timeout when saving major edits to long posts (~100k words) due to Diff bottleneck.Copymonopoly reported severe backend timeouts (502/504 errors) when saving edits to very long posts where a large portion of content changes. By inspecting Unicorn logs, they confirmed the timeout originates in DiscourseDiff#tokenize_markdown. They suggested a performance fallback: treat extreme edits as a “complete rewrite” to skip the expensive diff calculation, or compute the diff asynchronously after the save. read more
TypeError: can’t access property 0, i.jqXHR.responseJSON.errors is undefined when viewing post edit history. In a related issue from Copymonopoly, clicking the edits indicator to view the edit history of a post throws a frontend JavaScript error, even in Safe Mode. The error stack points to a crash in history.gjs when trying to load the list of revisions. read more
Update URLs inside a poll after changing CDN.Canapin had an issue where baked CDN URLs inside poll options were not updated after running rake 'posts:remap[...]'. Lilly suggested using the built-in discourse remap command, which performs a global regex search-and-replace across all database text columns (including poll_options.html), followed by rake cache:clear to flush the Redis cache. read more
What is the point in primary’s. In a somewhat pointed response, Lilly reminded Raadtotheraad that the concept of primary groups is well-documented, and linked to a comprehensive topic on the subject, gently suggesting more search-first behavior. read more
ArgumentError (Attributes per element limit exceeded) when trying to open the diff of a locked topic.Copymonopoly added a note to this existing bug report, stating they are experiencing a very similar issue triggered by massive edits on extremely long posts (~100k characters), which also causes the backend to timeout (502/504) due to the heavy diff calculation. read more
Discourse Gamification - Getting 404 / MissingAttributeError on /leaderboard route.Ted kindly responded to Glob-Canard.4x, who had initially raised a false alarm but resolved the issue themselves. Ted encouraged the user, stating that reporting potential issues is always welcome. read more
#Feature
Do we want to add a confirmation popup to “Reset bump date”?Haydenjames chimed in that the “reset bump date” feature currently seems to do nothing for them, so they would support adding a confirmation popup to clarify its effect. read more
#Extras
Feedback wanted: userscript to theme component/plugin, or possible core sidebar browsing idea?Heliosurge provided feedback on a user’s idea for a sidebar browsing feature, suggesting that a theme component approach using Tampermonkey would be fine for client-side changes. They also pointed to two existing sidebar-related theme components: Right Sidebar Blocks and Discourse Bars. read more
Free Hosting for Open Source v2.AJHalili2006 asked whether it’s possible to upgrade an existing free discourse.group instance to the Pro for Open-source plan, or if a new instance and manual data import is required. Supermathie advised emailing the Discourse team for applicable options. read more
How I use AI as the co-CEO of a remote company.HAWK contributed to this blog post, expressing curiosity about how others use AI within their organizations or Discourse sites, and whether they encounter internal friction due to varying appetites for AI adoption. read more
#Announcements
Introducing the unified new view for the topic list.Martin acknowledged a bug report and promised a fix for an issue in the new unified view. read more
Star your favorite chat channels for easy access.Jrgong suggested that instead of adding a new “starred” tab (which clutters the UX), the feature could be rebranded as “pinned chats” and pinned channels should simply rise to the top of the list, leveraging an already familiar UX pattern. read more
Tedencouraged a user who had raised a false alarm about the gamification leaderboard route, stating that reporting is always welcome.
Supermathieadvised a user to email the Discourse team regarding upgrading a free hosting instance to the Pro for Open-source plan.
After yesterday’s deep dives into S3 configuration and encoding issues, let’s just say Cloudflare R2 tokens are like socks in the laundry—they always seem to end up in the wrong place.
HAWK shared insights on leading a remote company with AI, touching on the tension between leadership enthusiasm and worker skepticism. Ed_S offered a nuanced perspective on how the benefits and costs of AI often fall in different parts of an organisation, linking to several thought-provoking external reads read more.
Satonotdead is wrestling with integrating internal AI API endpoints (via LiteLLM) into a self-hosted Discourse instance, hitting a SSRFDetector::DisallowedIpError. Falco suggested the DISCOURSE_ALLOWED_INTERNAL_HOSTS env variable, but the issue persists read more.
Copymonopoly reported a critical bottleneck when saving major edits to posts ~100k words long, causing backend 502/504 timeouts due to the diff engine. Sam confirmed a diff_too_complex fallback was added in February, and after upgrading, the crashes appear resolved read more.
David_Ghost noticed avatars taking 3–4 seconds to load after migrating to Cloudflare R2. Lilly diagnosed the likely issue as on-the-fly resizing of missing avatar sizes, recommending a rake avatars:refresh command read more.
Jonathan5 asked about creating a banner post, noting the old option might have been replaced. Awesomerobot clarified it still exists inside the “pin topic” modal, though Jonathan5 encountered a UI bug where the menu option doesn’t update correctly read more.
Prempavee is trying to suppress the install-app PWA popup, preferring a custom branded experience. Awesomerobot pointed to the native_app_install_banner setting and noted the blue banner can be hidden with CSS read more.
Darkpixlz couldn’t upload to S3 (Cloudflare R2) until Lilly spotted the token type was wrong—a general API token was used instead of an R2-specific bucket token read more.
#Feature
LotusJeff made a lighthearted feature request for a date picker in the AI Translate settings field for “backfill max age days,” to avoid mental math for forums with content dating back decades read more.
#Plugin (Discourse Reactions)
Bartv asked if users could one-click an existing reaction to “join in,” similar to Slack/Discord, reducing friction from diving into custom options read more.
RSEhlers reported receiving duplicate notifications—one for a like and one for a reaction—with no separate preference to control them read more.
In a discussion about falling forum activity, Philip_Rhoades observed dropping numbers across a dozen Discourse forums he follows, attributing it to users moving away. Awesomerobot noted the rise of “AIO” (AI optimization) and “GEO” (generative engine optimization) replacing traditional SEO read more.
Copymonopoly also encountered a TypeError crash when viewing post edit history for long posts, which Zogstrip believed was fixed by a recent PR read more.
Paul_King reported that enabling Nested Replies is arbitrarily shuffling related thread replies between topics, particularly for users who reply by email—disabling the feature restores sanity read more.
Sam responded to the post-diff bottleneck issue, confirming the addition of a diff_too_complex fallback to prevent crashes on very large edits read more.
Chapoi also explained that the “Powered by Discourse” badge animation is suppressed on touch devices, and may disappear if a coarse pointer is connected read more.
Awesomerobot helped with multiple support requests:
Pointed to the correct banner post feature in the admin modal read more.
Identified the native_app_install_banner site setting and noted CSS workarounds for the PWA popup read more.
Fixed a bug in the Topic List Thumbnails component read more.
Provided a code example for using type:objects in plugin settings read more.
Yesterday’s activity was a wild ride—spanning diff crashes, AI endpoint mysteries, and a call to “join in” on reactions—proving that even the most technical forums thrive on a little bit of chaos and a lot of community spirit!
Blurred text in topic subscription context menu: Rokejulianlockhartreported that text in the subscription control menu appears blurry in Firefox Nightly despite looking fine in screenshots. Awesomerobotnoted a possible custom font issue and asked if it occurs in safe mode. read more
Cut‑off “Dismiss” button: Canapinpointed out an empty space between the label and chevron icon in the Dismiss button across all themes. read more
Event (calendar) UX issues: Awesomerobotsubmitted two PRs to fix image behaviour and make “advanced mode” toggles more consistent in the calendar events plugin. read more
#Data & reporting
AI Translation Progress Graph not refreshing: LotusJeffasked about refresh rates and missing detail on language‑detection progress. Falcoexplained the caching and the two‑step translation process, and LotusJeffsuggested a simpler aggregate reporting table. read more
#Self-hosting
Mail jobs failing with Nokogiri error: Josip_Meštrović reported a puzzling Unregistered function error in Sidekiq for all mail types. Awesomerobottraced it to an a:visited pseudo‑class in the email CSS style admin page, which Josip_Meštrović confirmed solved the issue. read more
Avatar loading slow after moving to S3‑compatible R2: David_Ghostcontinued troubleshooting after the earlier rake avatars:refresh didn’t help. Lillydiagnosed that Discourse was proxying avatars through /tmp/avatar_proxy instead of using the CDN, likely due to a URL mismatch, and provided remap commands and settings checks. read more
#Plugin
Dumbcourse – old‑browser friendly UI: The plugin sparked discussion when Merefieldquestioned the wisdom of merging it into a larger plugin. Ars18clarified the standalone repo remains available and all features are toggleable. read more
Discourse Translator plugin phased out: Awesomerobotadvised users to switch to the Discourse AI plugin for automatic translation, noting that LibreTranslate costs can be avoided with cheap AI models. NateDhaliwaladded that self‑hosting models via Ollama is also an option. read more
New ModelOC OneBox plugin: Cuo_Wuannounced a plugin that renders rich onebox cards for LLM relay audit reports from ModelOC. Supports Chinese, English, and Japanese. read more
How to make a banner post: Jonathan5found the “Make Banner Topic” option missing. Awesomerobotexplained it’s disabled for categories with group restrictions. Moving the topic to a public category restored the banner. read more
Nested replies broken when enabled: Paul_Kingreported that turning on nested replies caused email‑in replies to appear in wrong topics and made many replies disappear. Markvanlanasked for clarification, and Falcosuggested updating to the latest version as the feature is evolving rapidly. read more
Tracking down the world’s best community builders: Jawestenbergshared a blog post about the loneliness of community building and the value of NPS for ROI. Tedcommented on the irony and shared a personal story. read more
#Feature
Android share target finally working: Falcoconfirmed that the Meta PWA now appears as a share target on Android for images, marking the long‑running request as done. Merefieldtested and found it works for most content except photos from Android 17. read more
SEO: Googlebot view should respect nested replies sort: Newbit1337noted that crawlers still see the flat view even when nested replies default sort is set to “top”. Falcoexplained the flat view is a recent workaround and a proper crawler view for nested replies is not yet a priority. read more
Falco provided in‑depth support on the AI translation graph (caching explanation), helped with internal AI endpoint configuration (IP vs hostname), marked the Android share target feature as done (confirmed working), referenced the share feature in another thread (linked), advised on nested replies update (suggested upgrading), and explained the crawler view default for nested replies (flat view workaround).
Yesterday, an intrepid admin’s a:visited CSS broke all their mail jobs, while another discovered their avatars were secretly being served from a /tmp folder – but at least the blurry text turned out to be just a cheeky custom font!
Willy sparked a spirited discussion on installing plugins without third‑party hosts. Chapoi initially pointed to the standard GitHub‑based guide, but Willy insisted on a local‑only workflow for tiny, one‑off plugins. RGJ and Merefield argued that GitHub is trivial to set up, provides version control, and is the professional standard. Satonotdead raised concerns about GitHub censorship, suggesting alternatives like Codeberg. The thread eventually revealed that many of Willy’s “plugins” could actually be implemented as theme components – an approach Awesomerobot and Merefield demonstrated to be far simpler, using zip uploads or the discourse_theme CLI.
RGJ reported a responsive bug where the “New Topic” button fails to update its label when resizing the browser window between mobile and desktop. Awesomerobot confirmed the issue and quickly pushed a fix.
Ted noted that the “Dismiss ⌄” button appears cut off in certain themes. Chapoi explained the cut‑off is an intended design effect but acknowledged that recent modernisation changes may have broken it, promising to look into it.
Paul_King reported that nested replies were broken on his forum – many replies disappeared when the nested view was active, and toggling the feature sometimes caused 404 errors. Chapoi and Falco advised him to update, which resolved the visible issue, though the update process itself hit a snag due to an old database import reference in app.yml.
Akjgklajg encountered a 500 error when using the Theme Creator. Awesomerobot confirmed the error and said the team will investigate.
Jagster wondered if it is possible to force English for unsupported languages while keeping the site’s default locale as Finnish. Falco confirmed a “fallback locale” feature does not yet exist. Nat explained that if the setting is disabled, untranslated content appears in the original language, and suggested setting the default locale to English if that is the desired fallback.
Small‑lovely‑cat submitted a fix for boosts in reviewables – previously, reported boosts linked to the topic instead of the specific post, making them hard to find. Nat confirmed that Zogstrip has merged the PR.
Roman reported that a recent merge (PR #41124) fixed an interaction between 2 and 3 – the education message now only shows once per typing session, not on every edit.
NateDhaliwal contributed to the Discourse Translator plugin thread by suggesting that users with capable servers can self‑host their own translation models (Gemini or Ollama) to reduce API costs.
Ted responded to a blog post about community builders, pointing out the tragic irony of community builders feeling lonely and sharing his own experience with the Ruby community.
Yesterday, Willy learned that using GitHub for even the smallest plugin takes less than one minute – proving that version control is a bargain, not a burden.
Willy wondered why his Discourse instance kept updating automatically, breaking his custom plugins. Falco clarified that Discourse has no automatic update feature, and the “rebuild” command he ran (./launcher rebuild app) was the cause. After a detailed exchange, Moin explained how to pin a specific version or commit hash via app.yml, though warned against it in production due to missing security fixes. read more
A long-running discussion on installing plugins without a third-party host continued, with Heliosurge and NateDhaliwal suggesting theme components as alternatives for small customizations. Willy expressed frustration that the thread had veered off-topic, but Chapoi noted that some responses had become unnecessarily aggressive. read more
Miednr reported that anonymous visitors were redirected to the login page when categories was the first entry in the top menu setting. Zogstrip could not reproduce, and after some troubleshooting, Miednr found that the issue seemed to resolve temporarily after saving settings. The root cause remains unclear. read more
Gilles asked why Ask Discourse had become less performant recently. Nat revealed the team switched to a local hosted DeepSeek v4 flash model, and Falco explained that Ask Discourse was built for general troubleshooting, not development. He recommended the dv (Discourse Vibe) tool for developers. read more
Singi2016cn sought ways to override a gjs component template and interact with the <PluginOutlet> in the search-menu component. NateDhaliwal suggested using the search service or adding arguments to the outlet via a PR. Singi2016cn later discovered that accessing the search service directly in a connector worked. read more
Fzngagan explained the models powering the Sentiment dashboard (Roberta-based) and how to switch to agent-based classification using site settings. read more
LotusJeff asked why topics are translated faster than posts in the AI Translator. Falco clarified that batch sizes are similar, but topics progress faster due to fewer posts per topic; he suggested adjusting max age or backfill rate. read more
Singi2016cn reported an AI automation that replied 11 times to the same post. Nat suspected a job retry issue and recommended switching from the old automation plugin to the new workflow plugin in an updated Discourse version. read more
#Feature
Prempavee wanted to offload video uploads to an external provider like Mux on the Pro plan. Moin pointed to a YouTube/Vimeo theme component fixed by Arkshine, but noted that custom plugins are not allowed on Pro. Arkshine is exploring solutions, including a plugin version, but acknowledged the hosting restrictions. read more
#Announcements
Davidb announced a new reactions popup in chat, available as an experimental feature under /admin/config/upcoming-changes. The popup shows all users who reacted to a message and allows filtering by reaction type. read more
Zogstrip fixed a long-standing bug where all-day events created via the calendar plugin were not usable by iCal (PR #41203). Nathank confirmed the messy merge resolved the issue. read more
Zogstrip also fixed a bug where events from unlisted topics appeared on the calendar (PR #41194), linking it to a related report by RGJ. read more
Newbit1337 highlighted a confusing UI bug in full-app embeds: the topic progress shows “2/2” even though only the first post is visible. He linked a prior feature request to include the first post. read more
Falco posted a brief update from office hours: “Discourse is Not Going Closed Source” – a reassuring follow-up to recent concerns. read more
#Site Management
Gabby_McCone_She_Her asked about the difference between locking threads and archiving in the moderation guide. Moin pointed to documentation on closed, unlisted, and archived topics. read more
#Plugin
Sam merged a PR for the Discourse Shared Edits plugin, adding a long-awaited feature. read more
The Discourse team was highly active across many discussions yesterday.
Falco helped Willy understand that ./launcher rebuild app triggers updates and explained how to pin versions here and here. He also clarified Ask Discourse’s model change here, joined the plugin installation debate here, and gave a reassuring word on the closed-source blog here. He also explained translation speed differences here.
Moin provided extensive guidance on pinning Discourse to a specific commit hash here, here, and here. He also helped Prempavee with video upload alternatives here and here, answered a moderation query here, and linked a fix for upcoming events here.
Nat acknowledged the Ask Discourse performance complaint here and investigated the AI automation bug here, here, and here. He also helped debug the visitors access issue here, and shared a sneak peek at multi-language preferences here.
Zogstrip fixed two bugs with PRs for all-day iCal events here and events from unlisted topics here. He also attempted to reproduce the visitors access bug here and here, and thanked a user for a poll fix here.
Davidb announced the new chat reactions popup here and added suggested tags here.
Chapoi reminded the community to keep the plugin installation thread constructive here and helped Willy find the last update date here.
Sam merged the PR for Discourse Shared Edits here.
Awesomerobot engaged with a development question about JSON schema arrays here.
Martin fixed a bug in the unified new view here and provided an update on granular group permissions here.
Rishabh added a site to Discourse Discover after a user request here.
Mcwumbly confirmed that pinning to a specific commit hash works, though not recommended here.
From debates about pinning Discourse versions to discovering the mysteries of automatic updates, yesterday proved that even self-hosters can’t escape the allure of new features – and maybe a few headaches.
Robbie.Morrison shared a deep dive into governance failures on Wikipedia concerning AI‑content policies, including a case where an editor with indigenous knowledge was wrongly accused and forced to deny AI use four times. RGJ pointed out that AI detectors are biased against non‑native English writers read more. The discussion highlighted the reverse burden of proof and the psychological toll of such accusations read more.
#Announcements
Rishabh published the Current Projects – June 2026 newsletter, detailing recent completions like GIFs moving to core, the unified new topic list, nested replies, and the new blocks system for theme customizations. Ongoing work includes reporting/analytics improvements, Events plugin enhancements, and a new Workflows automation system read more.
Markvanlan updated the nested replies feature, changing default max depth to 3 and enabling capping. Mcwumbly suggested per‑category settings could better serve different use cases (voting, AMAs, etc.). Markvanlan agreed, noting that backfilling existing topics in the UI is still missing read more.
Awesomerobot announced that livestream is now an optional toggle during event creation, replacing the old tag‑based system. Site settings livestream_enabled and livestream_chat_allowed_groups are removed; livestream now uses existing chat and event permissions read more.
#Self-Hosting
JackieP asked about self‑hosting with a Business account. Falco clarified that Discourse is open‑source GPL v2, so self‑hosting is free, and features like SSO and gamification are baked into core. Pfaffman offered paid integration help read more.
In a thread on installing plugins without a third‑party host, Pfaffman explained that any method to copy plugin code into discourse/plugins works, not just git cloneread more.
A user reported visitors can’t access the forum index after an update. The issue remains unsolved despite a workaround read more.
#Feature
Moin raised a regression in the multi‑language preferences UI: the per‑topic toggle was removed, requiring more clicks to see untranslated content. Awesomerobot explained the old toggle caused confusion and suggested reconsidering its design read more.
Mcwumbly reopened discussion on where to flag posts in full‑app embed mode, suggesting the flag button could be restored with a setting for allowed post actions. Falco agreed read more.
LotusJeff requested a date picker for AI Translate settings instead of a rolling days‑based filter. Mcwumbly noted it would be a different setting (“Translate all posts after {date}”) read more.
Ondrej couldn’t re‑enable the AI plugin after disabling it. Keegan confirmed a bug and is working on a fix. He also noted that on free tier sites, the AI plugin is always enabled for spam detection read more.
Falco explained why topics translate faster than posts — the batch sizes are similar, but topics with many posts take longer. Admins can adjust backfill rate and max age read more.
Moin reported overlapping icons in the topic edit interface (AI sparkles and angle‑down). Falco had already flagged this in another thread read more.
Moin also spotted the AI title suggest icon misplaced above the title input field when editing translated topic information read more.
Moin requested that recent drafts always appear first in the new topic dropdown, as the order is currently unclear until visiting the drafts list read more.
Mcwumbly changed the default sort for the Contribute > Feature category from “Votes” to “Activity” because the votes sort was disorienting for navigation read more.
Moin discovered that diff between revisions is broken when a hidden revision exists in between. Previously, the diff would show the two unhidden revisions; now it shows nothing read more.
#Site-Management
MarkDoerr published Part 2 and Part 3 of the Discourse Moderation Guide, covering user management (warnings, suspensions, trust levels) and content management (topic moves, flags, review queue) Part 2 and Part 3.
Staff and team members were highly visible across numerous discussions yesterday:
Rishabh kicked off the Current Projects – June 2026 newsletter with a comprehensive update on Discourse development read more.
Awesomerobot announced the livestream toggle simplification and engaged in the multi‑language preferences UI discussion read more and read more.
Mcwumbly led discussions on embed flagging, default sort for feature category, and AI Translate date picker, as well as suggesting per‑category nested reply settings read more, read more, read more, read more.
Falco clarified self‑hosting and Business accounts, explained translation speed differences, and flagged the icon overlap bug in the composer read more, read more, read more.
Markvanlan merged a commit adjusting nested replies defaults and discussed per‑category nesting and backfilling read more.
Chapoi responded about future developer guides for the blocks system and corrected a trust‑level explanation read more, read more.
Keegan acknowledged the AI plugin stuck disabled bug and is working on a fix read more.
Tannerabread investigated a reported user card opening bug on upcoming events cards, but could not reproduce read more.
Davidb noted the reactions popup in chat feature had been completed read more.
Sign‑off: Yesterday’s conversation taught us that even your trusty em‑dash can betray you as an AI impersonator – but at least the cows are still wearing wigs.
Nicolsdennis continued development on a native mobile client app for Discourse, showcasing a tablet mode that splits the feed and topic panes side‑by‑side. A preview demonstrates the post navigator loading exact posts even after deletions and ID reordering. The app also supports multilingual cooked posts, though chat translations are not yet possible. Community members Kairo162 and LarisaHaster praised the work. Tablet mode demo | Post navigator demo | Multilingual support
#Self-hosting
On the thread about installing plugins without a third‑party host, Ed_S endorsed the advice to simply copy source code into the plugins directory, calling it “the right answer” and lamenting the thread’s tone. Read more
#Site Management
MarkDoerr published Part 2 of the Discourse Moderation Guide focused on managing users. The guide explains how to access user profiles, interpret trust levels, and handle difficult members through warnings, silencing, suspensions, and trust level restrictions. Read the guide
MarkDoerr also released Part 3 covering content management: topic manipulation, flag handling, the Review Queue, and content approval settings. De‑escalation techniques like staff posts, slow mode, and topic timers are detailed. Read the guide
#Feature
Arkshine proposed a technical solution for configuring video upload destinations using a Cloudflare Worker as an authentication broker. When a user uploads, the worker creates a private upload spot to the provider (e.g., Mux or CF Stream), hiding provider credentials. A working demo was shown, but the plugin Dave linked is recommended as a cleaner alternative. Solution description | Demo video
LotusJeff renewed a request for a date picker in AI Translate settings, noting that topics are translated much faster than posts, leading to mismatched translated topics with untranslated posts. A date picker would allow admins to set a simple cutoff, avoiding complex logic changes. Read the request
#Plugin
Bartv offered feedback on Discourse Reactions, pointing out that the emoji category sidebar lacks a scroll indicator, custom emojis are hard to access at the bottom of the list, and “Frequently Used” emojis are stored per‑browser rather than per‑account. Moin suggested a workaround for prioritising custom emojis, but Bartv found it half‑baked. Feedback on picker | Workaround reply
Darkpixlz reported trouble configuring Discourse embed URLs. Falco clarified that discourseUrl is the forum address while discourseEmbedUrl is the page hosting the embed. Darkpixlz later noted that using the embed feature created ghost topics from his 404 page; merging may be needed. Configuration help
One1 sought help automatically transferring themes via Rails console. NateDhaliwal confirmed that rails c must be used (not just ./launcher enter app) and explained how to exit with quit. Rails console guidance
@ばこん discovered that HTML comments are included in AI‑generated summaries, even though they are invisible to viewers. Falco marked the issue as #wontfix, citing the trade‑off of extra preprocessing. A propent change can work around it. Bug report | Staff response
Ililaoban reported a regression on user activity pages: after scrolling, clicking a post, and pressing the browser Back button, the page resets to the top instead of restoring the scroll position—contradicting the 3.0 release notes. Report
#Announcements
The Solved improvements discussion continued: Noble_Fish asked whether it’s possible to see who clicked “Me too” to recruit testers. EricGT noted that a related feature could prompt users who report a possible “Me too” issue to confirm, merging their posts into the main tracking topic—valuable for active production issues like a sidebar icon bug. Feature discussion | EricGT’s suggestion
#Site feedback
Heliosurge contributed to the discussion on where open‑ended product conversation belongs, recommending a #discuss tag in the Contribute > UX category or a new subcategory. They also praised the unique nested replies toggle on Discourse Meta. Read the suggestion
Falco provided support on two topics: correcting the embed URL configuration for Darkpixlz (post) and marking the HTML comments in AI summaries as #wontfix after considering the preprocessing overhead (post).
Arkshine shared a sophisticated solution for the video upload destination feature using a Cloudflare Worker broker, complete with a demo video. The approach hides provider credentials and creates private upload spots, though the official plugin is recommended as a primary option (post).
Yesterday’s highlight: Nicolsdennis’ tablet mode preview sparked excitement across the community, proving that a dedicated native app for Discourse is more than just a dream—it’s becoming a reality!