每日摘要(UTC早上5点)

Today on meta.discourse.org

Key Stats

In the last 24 hours, the community contributed 11 new topics and 15 new posts, garnering 14 likes in total.

Top Users by Activity & Likes:


Interesting Topics

Contribute > UX

  • A long-standing design concern was addressed this week: Chapoi announced 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

Support

  • 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

Contribute > Bug

  • 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


Activity by the Team Group

Team members were active in several key discussions today:


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. :cookie:

Today on meta.discourse.org

Key Stats

Over the past 24 hours, the community has been bustling with activity. Here are the headline numbers:

  • Total New Posts: 44
  • Total New Topics: 15
  • Total Likes Received: 19

The most active and appreciated contributors this period were:

User Posts Likes Received
Raadtotheraad 9 2
Lilly 6 5
Darkpixlz 4 1
Copymonopoly 4 2
Andrew_Rowe 3 0
HAWK 2 3
Canapin 2 2
Anko127 2 1
David_Ghost 1 2
Martin 1 1

Interesting Topics

Support

  • 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

bug

  • 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

blog

  • 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


Activity by the Team Group

The Discourse team has been active in several discussions:


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.

Today on meta.discourse.org

Key Stats

In the last 24 hours, the forum saw 64 new posts across 26 new topics, with 64 likes distributed by the community.

Top Users by Activity and Likes:


Interesting Topics

blog

  • 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.

Support

  • 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.

Community Building Building

  • 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.

Support (Badges)

  • Anko127 asked if non-admins could grant badges, and confirmed they had resolved it by substituting with group membership read more.

bug

  • 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.

Support (AI Translation)

  • LotusJeff reported an error on AI translation—“string contains null byte”—and asked for help locating the null byte in their content read more.

#Theme Component (Topic List Thumbnails)

#Theme Component (Gated Topics)

  • Jonathan5 inquired whether the Gated Topics component uses Google’s isAccessibleForFree structured data for SEO read more.

Support (Nested Replies)

  • 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.

Community Building Building (Show and Tell)

  • Lxk520 showcased a custom Android app built on Discourse, asking for help generating more content to test the app’s UI and layout read more.

Activity by the Team Group

  • 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.
  • Zogstrip was active across several threads:
    • Confirmed that a fix for crashing when viewing edit history was merged in a PR read more.
    • Implemented an API granular scope for listing all badges read more.
    • Closed a duplicate diff bug report, directing discussion to the main thread read more.
    • Clarified that the discourse-activity-pub plugin is not bundled in core code read more.
  • Chapoi moved the diff bottleneck topic to Contribute > Bug for proper tracking 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!

Today on meta.discourse.org

Key Stats

Over the last 24 hours, the forum saw 72 new posts across 26 topics, with 86 total likes awarded. The top contributors by activity were:

User Posts Likes
Awesomerobot 9 13
Falco 7 8
Chapoi 6 5
Canapin 2 5
Gormus 1 5
Ars18 3 4
Josip_Meštrović 3 4
LotusJeff 2 4
Jawestenberg 1 4
David_Ghost 3 3

Interesting Topics

#Announcements

bug

ux

#Data & reporting

  • AI Translation Progress Graph not refreshing: LotusJeff asked about refresh rates and missing detail on language‑detection progress. Falco explained the caching and the two‑step translation process, and LotusJeff suggested 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. Awesomerobot traced 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_Ghost continued troubleshooting after the earlier rake avatars:refresh didn’t help. Lilly diagnosed 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 Merefield questioned the wisdom of merging it into a larger plugin. Ars18 clarified the standalone repo remains available and all features are toggleable. read more

  • Discourse Translator plugin phased out: Awesomerobot advised users to switch to the Discourse AI plugin for automatic translation, noting that LibreTranslate costs can be avoided with cheap AI models. NateDhaliwal added that self‑hosting models via Ollama is also an option. read more

  • New ModelOC OneBox plugin: Cuo_Wu announced a plugin that renders rich onebox cards for LLM relay audit reports from ModelOC. Supports Chinese, English, and Japanese. read more

Support

  • How to make a banner post: Jonathan5 found the “Make Banner Topic” option missing. Awesomerobot explained 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_King reported that turning on nested replies caused email‑in replies to appear in wrong topics and made many replies disappear. Markvanlan asked for clarification, and Falco suggested updating to the latest version as the feature is evolving rapidly. read more

blog

  • Tracking down the world’s best community builders: Jawestenberg shared a blog post about the loneliness of community building and the value of NPS for ROI. Ted commented on the irony and shared a personal story. read more

#Feature

  • Android share target finally working: Falco confirmed that the Meta PWA now appears as a share target on Android for images, marking the long‑running request as done. Merefield tested and found it works for most content except photos from Android 17. read more

  • SEO: Googlebot view should respect nested replies sort: Newbit1337 noted that crawlers still see the flat view even when nested replies default sort is set to “top”. Falco explained the flat view is a recent workaround and a proper crawler view for nested replies is not yet a priority. read more


Activity by the Team Group

The Discourse team was active across a wide range of discussions yesterday:


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!

Today on meta.discourse.org

Key Stats

In the last 24 hours, the community generated 77 new posts across 30 new topics, fueled by lively discussions and contributions.

Top Contributors by Likes & Posts:


Interesting Topics

#Self-hosting

  • 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.

ux

Support

  • 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.

  • Wall‑E asked for a view counter for every post in a topic, not just the first one. NateDhaliwal linked to the Post Views Counter theme component, though it is currently flagged as broken.

  • 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.

bug

#Feature

#Data & reporting

#Plugin

blog


Activity by the Team Group

The Discourse team was active across several threads, providing fixes, guidance, and improvements:


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. :dog_face:

Today on meta.discourse.org

Key Stats

In the last 24 hours, the Meta community generated 87 new posts across 26 topics, with 106 likes given.

Top contributors by likes and posts:


Interesting Topics

#Self-hosting

  • 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

Support

  • 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

bug

  • 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

blog

  • 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

#Site feedback

ux

  • Moin linked a related fix for the upcoming events visibility issue, referencing the event-from-unlisted-topics bug that Zogstrip fixed. read more

Activity by the Team Group

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.

Today on meta.discourse.org

Key Stats

In the past 24 hours, the community generated 70 posts across 34 topics, receiving 123 likes overall. The top contributors by posts and likes were:


Interesting Topics

Community Building

  • 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 clone read 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.

Support

  • 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.

ux

  • 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.

#Site-Feedback

bug

  • 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.

Activity by the Team Group

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. :cow:

Today on meta.discourse.org

Key Stats

  • Total new posts: 34
  • Total new topics: 20
  • Total likes in returned posts: 29
  • Top users by activity:

Interesting Topics

General

  • 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

Support

  • 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

bug

  • @ばこん 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

Activity by the Team Group

  • 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!