每日摘要(UTC晚上九点)

Today on meta.discourse.org

Key Stats

In the last 24 hours, the meta community generated 61 posts across 36 topics, with 102 likes given. Here are the top contributors by engagement:

User Posts Likes Received
Sam 2 14
HAWK 1 11
Nicolsdennis 3 6
Falco 2 6
Nat 2 6
Southpaw 2 6
Zogstrip 2 5
One1 1 5
Darkpixlz 3 4
Ed_S 3 4

Interesting Topics

Contribute > Feature

  • Android PWA sharing gets a PR: Southpaw revisited the idea of making a Discourse PWA a share target on Android, envisioning a menu for creating new topics, replies, or PMs when sharing content. Falco then delivered with a working PR and a video demo—now there’s discussion about extending this to the Discourse Hub app. read more

  • Show all replies after posting with simple mode: NateDhaliwal proposed that after posting a reply in simple mode, all replies should be visible instead of being hidden behind “Show xx comments,” eliminating the flash-and-hide experience. read more

  • Threaded discussion complexity debate continues: Dituar joined the long-running discussion, proposing a compromise where a flat forum is the main view, but a button opens the entire reply chain in a new tree-view window—a hybrid approach combining the best of flat and threaded displays. read more

  • Tecnoblog’s embed experience: Thiago_Mobilon reported multiple layout issues with the Discourse embed version, including ad plugins inserting ads that break layout, horizontal scrollbars from post-bottom ad slots, and inconsistent mobile margins. read more

#Community Building

  • Forums that forbid AI content: One1 asked staff from forums banning AI-generated content about detection methods and enforcement strategies. Darkpixlz shared using honeypots that generated 6 million requests from crawlers in two weeks, while Ed_S described a gentler approach of remonstration and deletion on a low-volume hobby site. read more

  • Drastic drop in support forum activity: JammyDodger asked whether communities are seeing engagement declines. Nat revealed that a community’s user visits showed a drastic May decline, traced back to Google’s May 2026 Core Update—a crucial finding for admins wondering about traffic drops. read more

Contribute > UX

  • Hover over emoji shows larger version: Sam showcased a playful theme component that displays enlarged emoji on hover. While unofficial (“if it breaks your site it is not my fault”), it generated significant interest. read more

  • Event calendar UX issues: RGJ documented a click-focus problem where editing the event preview requires two clicks to activate the topic title input, as the first click erroneously activates the post content area instead. read more

Contribute > Bug

  • Large poll bug—users cannot amend votes: Zogstrip completed part 2 of the fix for a poll bug where users couldn’t amend votes on open polls, resolving it with a PR merge. read more

  • Error when creating event due to username: Awesomerobot fixed an edge case where having a user named “trust_level_0” caused event-creation errors—the username clashed with an internal lookup. read more

  • Chat thumbnails bypassing CDN: David_Ghost confirmed that after two remaps, old uploads and thumbnails now work correctly, fixing a bug where chat thumbnails used raw S3 URLs instead of the configured s3_cdn_url. read more

  • Error 500 when moving posts: Zogstrip suggested a 55% chance fix for the 500 error on post moves, pointing to a PR in the activity-pub plugin. read more

  • Layout of fullApp embed mode: Erizo1332 shared CSS fixes for four layout bugs in fullApp embed mode: blank space on left/right, excessive height, and a 1px flicker on Chrome Ubuntu. read more

#Self-hosting

  • Login dialog offers nonexistent options: Paul_King reported that after an update, the login dialog showed Apple, Microsoft, OpenID Connect, and passkey options despite them not being configured. Andrew_Rowe pointed out the settings are in a different tab under Login & Authentication. read more

Support (translated from Portuguese)

  • Community name reservation issue: Jefferson_Ferraz asked for help releasing a community name reserved during a Google account login error. Awesomerobot advised checking spam for the confirmation email, which goes to the current address first. read more

#Site feedback

  • Daily Summary moves to workflows: Sam announced porting the Daily Summary to workflows, making prompt engineering easier with a single prompt location and enabling simpler testing via pinned schedules. The move also shifts the model to a self-hosted deepseek v4 flash. read more

#Extras

  • Sidebar Feed Panel feedback wanted: YsLtr introduced a userscript turning the Discourse sidebar into a compact topic feed, asking whether it should become a theme component, plugin, or spark core discussion for feed-oriented sidebar browsing. read more

enterprise

  • Community ownership models: Mcwumbly deepened the discussion, arguing that user input on bugs, fixes, and features fits into “product development” rather than marketing, even though community officially falls under marketing in Discourse’s org structure. read more

News and Events > Blog

  • How I use AI as co-CEO: HAWK published a blog post on how he and Sam use AI at a fully remote company, addressing the intersection of AI tools and remote leadership. read more

#Announcements

  • Redesigned admin dashboard preview: Nat noted that date range charting heuristics have been improved based on user feedback, while Ondrej asked where to find the last update timestamp and noted less specific storage information. read more

General

  • Native mobile client app update: Nicolsdennis shared major updates to the Sysaru app, including multiforum support, immersive comments with nested replies, and full localization into 49 locales, pending app store approval. read more

Activity by the Team Group

Sam was exceptionally active, sharing a fun theme component for emoji hover previews and porting the Daily Summary to workflows with a model shift to self-hosted deepseek v4 flash.

Falco delivered on a feature request for Android PWA sharing with a working PR and video demo, and helped debug an AI model configuration issue, noting the correct URL format and recommending GPT 5.4 Nano over GPT 5 Mini.

Zogstrip completed part 2 of the large poll fix and proposed a fix for the 500 error when moving posts, pointing to an activity-pub PR.

Awesomerobot fixed the event-creation error caused by a user named “trust_level_0” and helped a community member resolve a name reservation issue by checking the correct email flow.

Nat provided crucial analysis of the drastic drop in support forum activity, tracing it to Google’s May 2026 Core Update, and noted improvements to charting heuristics for the admin dashboard.

Pmusaraj commented on the Android PWA sharing feature, confirming it should work with the Discourse Hub app as well.

Mcwumbly provided insightful framing of community ownership models, arguing that user input on product direction falls under product development despite community being under marketing.

Ted investigated a MissingAttributeError in gamification, unable to reproduce it and confirming only the core-bundled version should be used.

Nathank marked the recurring event feature for the nth weekday as delivered, with a note about extending it further.


With a Google Core Update causing blanket coverage concerns and an Android PWA sharing PR landing like a drop of rain in a drought, yesterday proved that even when the algorithm shifts, the community’s ingenuity never dries up.

Today on meta.discourse.org

Key Stats

In the last 24 hours, the Meta community generated 45 posts across 25 topics, receiving 75 likes in total.

Top Contributors

User Likes Received Posts Created
Nicolsdennis 8 3
Dituar 7 6
YsLtr 7 3
Nat 7 2
Chapoi 5 2
One1 5 1
NateDhaliwal 4 5
Paul_King 3 3
Ed_S 3 1
Darkpixlz 3 1

Interesting Topics

#Community Building

  • One1 kicked off a spirited discussion on the challenges of forums that forbid AI content, asking how other staff detect and communicate AI bans. Darkpixlz shared their “nuclear” approach using honeypots and the iocaine project to trap crawlers (resulting in ~6 million requests in two weeks), while Ed_S outlined a gentler policy for their hobby forum.

  • Nat discovered a worrying correlation: a community’s drastic user visit decline tracked perfectly with Google’s May 2026 Core Update, suggesting forum activity drops may be algorithm-driven rather than organic. Read more.

General

  • Nicolsdennis showcased major updates to their Sysaru native mobile app, including full multi-forum support, immersive comments, post navigator, and native push notifications—now pending App Store approval. See the screenshots.

#Extras

  • YsLtr introduced a Discourse Sidebar Feed Panel userscript that compacts the sidebar into a browsing feed, and is seeking community feedback on whether to pursue a theme component, plugin, or core feature discussion path. View the visuals.

#Self-hosting

#Announcements

  • Nat noted that improved date-range charting heuristics have been merged for the redesigned admin dashboard. Ondrej praised the new look but wondered where to find the last update time and storage details, which Chapoi confirmed are being moved to a new yet-unavailable home. Read more.

Contribute > Feature

  • Dituar registered specifically to propose a compromise for threaded discussions: keep the main display flat, but add a button to open the entire chain of related posts in a tree view, addressing the pain of figuring out context in long reply chains. Read more.

Contribute > UX

  • Chapoi announced that a fix has been merged to rebalance the prominence of the Delete category button versus the Save button, addressing a long-standing UX concern. Read more.

Contribute > Bug

  • Glob-Canard.4x traced a MissingAttributeError on the gamification leaderboard route to an errant plugin hooking into UserScoreSerializer, resolving what initially appeared to be a core bug.

#Plugin

  • Nicolsdennis asked about supporting PayPal Advanced Checkout in the Subscriptions plugin, as Stripe isn’t available in many countries. Tobiaseigen suggested Invoice Ninja as an alternative that supports multiple processors including PayPal.

#Nested Replies Testing

  • Dituar continued their thorough testing of the nested replies feature, proposing a side-panel tree view that opens related chains without leaving the flat topic view, and creating test posts to demonstrate deep nesting behavior.

Support

  • TimMOz requested a new granular API scope (badges->list) for listing all badges, noting that currently a global scope or disabling login required is necessary.

  • Ice.D questioned the purpose of primary groups when users can change their group flair anytime, with Canapin clarifying the key point is “by default.”

#Plugin (Translator)

  • Filipesm raised concerns about the long-term maintenance of the Discourse Translator plugin versus moving to the LLM-powered AI approach, especially given costs and a desire to avoid Big Tech models.

Contribute > Bug

Contribute > Feature (PWA)

  • NateDhaliwal asked if a fix for Android share sheet issues could work with the Discourse Hub app. Pmusaraj confirmed it’s a separate process that should also be fixed.

Contribute > Feature (Doc Categories)

  • NateDhaliwal suggested that after posting in simple mode, all replies should be shown immediately rather than hidden behind “Show xx comments,” to reduce the flash and improve usability.

Contribute > Feature (Chat)

  • Jrgong reiterated previous feedback requesting pinned chat messages appear as a sticky bar (like WhatsApp/Telegram) to help guide new users away from using chat for support requests.

#Announcements (Topic List)

  • Heliosurge pointed out that the “New All” tab link doesn’t open the correct view, and requested UI parity for the number display beside the All tab.

#Theme component

  • YsLtr commented that reply button labels are a beginner problem but easily figured out after one try.

#Site feedback

  • Canapin noted that the :discourse2: emoji is broken on certain theme component topics.

#Plugin (Voice Rooms)

#Developer Guides

  • NateDhaliwal shared a humorous account of misreading console output during development setup—those “migrations” were actually Sidekiq jobs running.

Activity by the Team Group

  • Nat shared the Google Core Update discovery in the drop in forum visits topic, and later noted the improved date-range charting heuristics for the admin dashboard.

  • Chapoi announced the merge of a fix balancing the Delete vs Save button prominence, and responded to feedback about the missing last-update-time in the new dashboard.

  • Awesomerobot merged a guard against the “trust_level_0” user edge case in event creation.

  • Zogstrip submitted a fix for the error 500 when moving posts (ActivityPub plugin).

  • Jrgong provided feedback on pinned chat messages feature request.

  • Pmusaraj responded about fixing the Android share sheet issue for Discourse Hub.

  • Ted investigated the gamification leaderboard bug (later resolved by the reporter as a plugin issue).


Yesterday’s activity showed that even the most patient among us can spend four hours watching Sidekiq jobs before realizing the development server was actually running all along—proof that the Meta community’s dedication extends well past midnight debugging sessions!

Today on meta.discourse.org

Key Stats

In the past 24 hours, Meta saw 43 new posts across 18 topics, generating 22 likes from the community.

Top Users by recent activity and likes received:

User Posts Likes
Raadtotheraad 9 2
Canapin 4 4
Lilly 4 4
NateDhaliwal 4 0
Chapoi 1 3
Filipesm 1 3
TimMOz 1 2
Tobiaseigen 1 2
Darkpixlz 2 1
David_Ghost 1 1

Interesting Topics

Support

  • Quick question about the “Powered by Discourse” badgeRaadtotheraad noted the loss of the rainbow hover animation on the “Powered by Discourse” badge. After some back-and-forth, Canapin identified the culprit: the user’s browser/OS detects touch capabilities (even if the device doesn’t truly have a touchscreen), which causes Discourse to apply touch and touch-discourse CSS classes, suppressing hover effects. The rainbow animation works for non-touch, mouse-driven interactions. read more

  • What is the point in primary groups?Ice.D questioned the utility of primary groups, suggesting that if anyone can change their group flair anytime, the “show that group’s avatar flair by default” setting becomes meaningless. Canapin clarified the nuance of “by default,” and Lilly provided a firm nudge to read the well-documented guide before posting further. read more

  • API granular scope to list all badgesTimMOz requested a new API key scope (badges->list) to programmatically list all badges without requiring a global-scope key or anonymous access. The current approach forces admins to grant overly broad permissions, which is a security concern for closed sites integrating with external systems like CiviCRM. read more

  • Can’t upload to S3 (Cloudflare R2)Darkpixlz experienced upload failures after setting up Cloudflare R2 as an S3-compatible store. The error log showed “Sorry, but your upload failed.” Community members pointed out a trailing slash issue in the CDN URL and endpoint configuration, and Lilly recommended the official guide. read more

  • Update URLs inside a poll after changing CDNCanapin found that rebaking posts and the standard rake 'posts:remap' did not fix CDN URLs embedded inside poll options. Lilly proposed using the built-in discourse remap command (via DbHelper.remap), which performs a global regex search-and-replace across all text fields in the database, followed by rake cache:clear. read more

  • Any way possible for non-admins granting badges?Anko127 asked if group owners could grant badges without becoming admins. HAWK suggested a hacky workaround: create a custom badge configured to be awarded via group membership, then add non-admin organizers as group managers so they can add/remove users to trigger badge changes. read more

#Plugin

  • Discourse TranslatorFilipesm raised a concern about the long-term maintenance of the official Discourse Translator plugin, asking whether the team plans to keep supporting it (security/bugs) or whether users should migrate to the Discourse AI / LLM-based translation approach, which may have higher operational costs. read more

  • Discourse Subscriptions PluginTobiaseigen shared a clever alternative to the Subscriptions plugin: Invoice Ninja, which supports multiple payment processors (including PayPal). The approach uses payment links for subscription sign-ups and a webhook + cron task to update Discourse user status in real-time. read more

  • ActivityPub PluginTrwnh1 reported a bug where the published datetime on ActivityPub objects is set to the resource creation date (when the “Publish all posts” button is clicked) rather than the original local Discourse post date. This causes old forum content to appear as brand-new on the fediverse. read more

  • Resenha - Add Discord-style Voice Rooms to Your CommunityNateDhaliwal noted that since Resenha is not an official plugin, users need an Enterprise plan or a self-hosted instance to use it. read more

#Site feedback

  • Missing images at Meta.discourse.orgCanapin flagged broken :discourse2: emoji on theme component topics, linking the issue to a chat thumbnail bug where some custom emoji are served from raw S3 bucket URLs instead of the CDN. Lilly confirmed a remap/rebake is needed, and Darkpixlz began fixing the affected instances. read more

Contribute > UX

  • Delete category button is more prominent than SaveChapoi announced that a fix for this UX imbalance has been merged via PR #41049, making the delete action less dangerous. read more

Contribute > Bug

  • Discourse Gamification - Getting 404 / MissingAttributeError on /leaderboard routeTed closed a bug report after the original poster, Glob-Canard.4x, resolved the issue themselves and apologized for the false alarm. read more

  • Error 500 when moving postsThomas_Rother followed up on a fix, confirming the error originated from the ActivityPub plugin and expecting the fix to ship with the next build/container update. read more

#Extras

  • Feedback wanted: userscript to theme component/plugin, or possible core sidebar browsing idea?Heliosurge suggested that a userscript for sidebar browsing could be implemented as a theme component, referencing existing sidebar themes like Right Sidebar Blocks and DiscourseBars. read more

News and Events > Blog

  • Free Hosting for Open Source v2AJHalili2006 asked if an existing free discourse.group instance could be upgraded to the Pro for Open-source plan without starting from scratch. Supermathie advised emailing the Discourse team for options. read more

Contribute > Feature

  • Do we want to add a confirmation popup to “Reset bump date”?Haydenjames voted yes, confessing that the current “Reset bump date” feature does nothing for him. read more

#Announcements

  • Star your favorite chat channels for easy accessJrgong suggested that instead of a new “starred” tab, Discourse could simply pin chat channels to the top or rename the feature to “pinned chats” for a more familiar UX pattern. read more

Activity by the Team Group

The Discourse team has been active across several fronts today:

  • Chapoi pushed a UX fix to core, merging a change that prevents the delete category button from being more prominent than the Save button. read more
  • David_Ghost helped diagnose a Cloudflare R2 upload issue, pointing out a likely trailing-slash misconfiguration. read more
  • Lilly provided detailed, actionable advice in multiple topics, including:
  • Supermathie clarified the upgrade path for free hosting plans on discourse.group, directing users to email the team for applicable options. read more
  • Tobiaseigen shared a practical, third-party alternative to the official Discourse Subscriptions plugin using Invoice Ninja for payment processing, complemented by webhooks and cron. read more

The most upvoted community insight today came from Canapin, who traced a disappearing rainbow animation to a touch-detection CSS class — proving that sometimes the most magical bugs are caused by the least magical hardware. :unicorn:

Today on meta.discourse.org

Key Stats

In the last 24 hours, 86 posts were created across 30 topics, receiving a total of 61 likes. The community was highly engaged, with several users standing out for their contributions.

Top Users (by posts & likes):

Interesting Topics

blog

  • How I use AI as the co-CEO of a remote companyHAWK shared leadership insights on managing varying AI appetites across teams, sparking a rich discussion with Ed_S about humane AI adoption. Ed_S noted that “the benefits of AI use are falling in one part of an organisation, and the costs are falling in another,” linking to several thought-provoking articles. HAWK's explicit rules—always label AI content and value the time/attention of those consuming it—were well-received. read more

  • Free Hosting for Open Source v2AJHalili2006 asked about upgrading a free discourse.group instance to a Pro for Open-source plan. Supermathie advised emailing the team directly for applicable options. read more

Support

  • Quick question about the “Powered by Discourse” badgeRaadtotheraad reported that the rainbow hover animation on the “Powered by Discourse” badge disappeared. Canapin diagnosed the issue as Discourse detecting touch capabilities (adding .touch-discourse class to <body>), which disables hover effects. Chapoi confirmed the animation only applies under .discourse-no-touch. Users suggested checking safe mode and browser settings. read more

  • Can’t upload to S3 (Cloudflare R2)Darkpixlz faced an “Unauthorized” error when configuring R2, despite following guides. Lilly identified the culprit: Darkpixlz created a general API token instead of a dedicated R2 bucket token with read/write permissions. After creating the correct token type and removing trailing slashes from URLs, the upload issue was resolved. read more

  • Any way possible for non-admins granting badgesAnko127 wanted event organizers to grant badges without admin rights. HAWK proposed a hacky workaround: create a custom badge configured for group membership, put non-admin organizers in charge as group managers, and let them add/remove users from the group—which effectively grants/removes the badge. read more

  • TypeError: can’t access property 0, i.jqXHR.responseJSON.errors is undefined when viewing post edit historyCopymonopoly reported a frontend crash when viewing edit history. Zogstrip pointed to a potential fix via this PR and asked if they were running the latest version. read more

  • How to use internal AI endpoints?Satonotdead encountered SSRFDetector::DisallowedIpError when connecting to internal LiteLLM endpoints. Falco suggested using the DISCOURSE_ALLOWED_INTERNAL_HOSTS env variable, though Satonotdead reported still facing issues after adding it to app.yml. read more

  • Install App PromptPrempavee wanted to disable the PWA install prompt that appears for new users on browser, preferring to show their own branding instead. NateDhaliwal noted it’s a Chrome PWA feature. Satonotdead cited a statistic showing only ~0.005% of websites fully leverage PWA technology. read more

  • How to make a banner postJonathan5 inquired about creating dismissible banner posts. Awesomerobot confirmed the feature still exists—find it in the topic admin menu under “pin topic” modal, where “make banner topic” is an option. read more

  • What is the point in primary’sLilly pointed Raadtotheraad to the existing documentation on setting primary groups, noting that Discourse and Meta “are designed for reading” and recommending more searching before posting. read more

  • Update URLs inside a poll after changing CDNCanapin struggled with stale CDN URLs in baked poll HTML. Lilly recommended using the built-in discourse remap function (instead of the rake task), which performs a global regex search-and-replace across all database tables, followed by rake cache:clear. read more

  • DiscourseAi::Translation: Failed to translate post due to string contains null byteLotusJeff asked how to locate null bytes causing translation failures. The post remains open for community suggestions. read more

bug

  • Backend 502/504 Timeout when saving major edits to long posts (~100k words) due to Diff bottleneckCopymonopoly identified that saving massive edits triggers timeouts due to expensive diff calculations. Sam noted that a “diff_too_complex” fallback was added in February. After upgrading to the latest version, Copymonopoly confirmed seeing the message “The diff is too complex to display” and reported improved performance. Zogstrip offered to tweak the complexity threshold if needed. read more

  • ArgumentError (Attributes per element limit exceeded) when trying to open the diff of a locked topicCopymonopoly reported a related issue with extremely long posts. Zogstrip closed the topic, directing further discussion to the diff bottleneck thread above. read more

  • 重建 Discourse 容器后,用户的 IP 变成了 172.17.0.1AkarinLiu encountered Docker bridge IPs appearing as user IPs after rebuilding the container. They resolved it using OpenCode on their server, noting it was not a core bug. read more

#Self-hosting

  • Avatars take a long time to load after moving to S3-compatible R2David_Ghost reported 3–4 second avatar load times. Lilly provided an exceptional three-part diagnostic: (1) on-the-fly avatar resizing requiring rake avatars:refresh, (2) IPv6 timeouts with Cloudflare R2, and (3) Gravatar delays. David_Ghost confirmed curl responses looked fine, pointing to the first issue as the likely cause. read more

#Community Building

  • Anyone else seeing a drastic drop in community activity for Support forums?Philip_Rhoades confirmed declining numbers across ~12 Discourse forums, stating “my gut feel is that people are moving away from fora.” Satonotdead linked to a previous discussion about SEO being replaced by AI. read more

#Plugin

  • Discourse ReactionsBartv requested an option for users to click an existing reaction to “join in” (similar to Slack/Discord), and for frequently used emojis to be one click away. RSEhlers noted duplicate notifications for likes and reactions, asking for a way to control them separately. read more

#Feature

  • Add more recurrent Event options to Calendar pluginEd_S contributed to the ongoing feature request, specifically noting that “last Sunday of the month” would be a useful option. read more

  • Request for a date picker in AI Translate settingsLotusJeff requested a date picker for the “AI translation backfill max age days” field, humorously noting that forum content going back to 1999 means “we are older and don’t want to deal with math in our heads.” read more

#Announcements

  • Introducing the unified new view for the topic listMartin acknowledged a catch in the new feature and promised a fix “soon.” read more

  • Star your favorite chat channels for easy accessJrgong suggested renaming the feature to “pinned chats” for a more familiar UX pattern, akin to pinned topics. read more

#Theme component

  • Topic List ThumbnailsAhmed26 asked for mobile-specific CSS to hide .topic-list-thumbnail.no-thumbnail, noting desktop code works but mobile doesn’t. read more

Activity by the Team Group

  • Chapoi confirmed that the “Powered by Discourse” badge rainbow animation is restricted to .discourse-no-touch, explaining why touch-enabled devices don’t display it. read more
  • Chapoi moved the diff bottleneck bug report to the Contribute > Bug category, noting that while 100k chars is unusual, a fallback should still be implemented. read more
  • Sam confirmed that a “diff_too_complex” fallback was added in February, and asked whether Copymonopoly was running the latest version with an adequately powered server. read more
  • Zogstrip closed a related bug thread, noting the discussion continues in the diff bottleneck topic, and offered to tweak the “diff too complex” threshold if needed. read more
  • Zogstrip confirmed that a PR was merged to address the “TypeError” when viewing post edit history, and asked if the reporter is on the latest version. read more
  • Zogstrip provided a link to a PR that adds a granular API scope for listing all badges. read more
  • Zogstrip clarified that the discourse-activity-pub plugin is not bundled with core code, and responded with a humorous GIF to Thomas_Rother's question about the upcoming build. read more
  • Martin acknowledged a bug in the unified new view for the topic list and promised a fix. read more
  • Awesomerobot guided Jonathan5 on creating banner posts via the topic admin “pin topic” modal. read more

Yesterday’s activity was a masterclass in community troubleshooting—from rainbow badges that only glow for the “touch-deprived,” to diffs so complex they’d make a supercomputer blush, proving once again that the Discourse community never runs out of edge cases to explore!

Today on meta.discourse.org

Key Stats

In the last 24 hours, the community has been highly productive, generating 114 new posts across 38 topics, receiving a total of 138 likes.

Top Contributors by Likes and Posts:

User Likes Received Posts Made
Awesomerobot 14 12
Lilly 13 7
Falco 9 4
David_Ghost 8 5
Ed_S 8 3
Satonotdead 7 8
LotusJeff 7 4
Chapoi 6 8
Copymonopoly 6 7
Jonathan5 5 6

Interesting Topics

#Self-hosting

  • Avatars taking ages after S3-to-R2 migration? David_Ghost reported a 3–4 second delay after migrating to Cloudflare R2. Lilly diagnosed the issue as likely the on-the-fly avatar resizing process (#1). She recommended running rake avatars:refresh to pre-generate sizes. When that didn’t fully resolve it, further investigation revealed that Discourse was proxying avatars through /tmp instead of serving them from the CDN, a problem traced to a configuration mismatch in external system avatars url and uploaded avatars allowed groups settings. The thread is a masterclass in remote debugging read more.

  • Mail jobs failing with Nokogiri errors. Josip_Meštrović reported a cryptic Sidekiq error: Unregistered function: //*:a[nokogiri:visited(.)]. After extensive troubleshooting, Awesomerobot pointed him to the /admin/customize/email_style/css area, where an old a:visited style was breaking email generation. Removing it fixed the issue read more.

Support

  • Backend 502/504 when saving 100k-character edits. Copymonopoly identified a bottleneck in the Diff engine when editing very long posts. Sam confirmed that a diff_too_complex fallback was added in February to handle this. After upgrading to the latest version, Copymonopoly reported that the issue is completely resolved — the system now gracefully displays a “diff too complex” message instead of crashing read more.

  • How to use internal AI endpoints with Discourse? Satonotdead asked about connecting self-hosted LiteLLM endpoints. Falco suggested using the DISCOURSE_ALLOWED_INTERNAL_HOSTS env variable with the domain name instead of an IP. The thread remains open as the configuration hasn’t fully resolved read more.

  • Banner topics disappearing in restricted categories. Jonathan5 couldn’t find the “make banner topic” option. Awesomerobot revealed the culprit: global banners cannot be used on topics in categories with group permissions. Recategorizing to a public category restored the feature, and the banner state was remembered read more.

  • Nested replies breaking email-in replies. Paul_King reported that activating the new Nested Replies feature caused email replies to be shuffled into random threads. Deactivating the feature immediately restored order. Markvanlan is investigating read more.

  • Null bytes blocking AI translations. LotusJeff asked how to find null bytes in post content causing translation failures. The thread is seeking community input on detection methods.

  • S3-to-R2 migration token confusion. Darkpixlz was stuck trying to upload to Cloudflare R2. Lilly spotted the problem: they created a general API token instead of a dedicated R2 bucket token. Switching token types and removing trailing slashes fixed it read more.

  • Install App Prompt bothering users. Prempavee asked how to disable the PWA install prompt. Awesomerobot clarified that the native_app_install_banner setting controls this, and alternative banners can be hidden with CSS read more.

  • Viewing post edit history triggers TypeError. Copymonopoly encountered a frontend crash when clicking the edits indicator. Zogstrip believes a recent PR has fixed this read more.

#Community Building

  • Drastic drops in Support forum activity. Philip_Rhoades observed a long-term decline across a dozen Discourse forums. Satonotdead linked it to SEO being replaced by AI, and Awesomerobot noted this is now being called AIO (AI Optimization) and GEO (Generative Engine Optimization) read more.

#Announcements

  • New post type composer dropdown: regression? Gormus noted that the “Toggle post voting” option appears in all categories, not just #Ideas. Awesomerobot explained this is by design — post voting is sitewide — but provided a handy theme component hook to filter it read more.

blog

  • How I use AI as the co-CEO of a remote company. In a thoughtful discussion, Ed_S and HAWK explored the tension between AI enthusiasm at leadership levels and skepticism among workers. They proposed two explicit rules: always label AI content and value the time and attention of those consuming your content read more.

  • Tracking the world’s best community builders. Jawestenberg shared a companion blog post exploring the loneliness of community building and what makes great communities tick read more.

ux

  • Cut off “Dismiss” button has empty space. Canapin spotted a gap between the label and chevron icon in the Dismiss button across all themes.

  • Foundation theme display bug. Gilles reported broken button styling after an update. Newbit1337 confirmed the fix: enabling the Modernize Foundation theme setting resolves it. Chapoi has submitted a PR fix read more.

bug

#Data & reporting

  • AI translation progress graph feedback. LotusJeff requested clearer reporting on translation backfill progress. Falco explained that the page is cached to avoid timeouts on large sites, and the initial “locale detection” phase is no longer shown. LotusJeff proposed a simpler aggregate table showing eligible vs. translated counts read more.

#Feature

  • Date picker for AI translation settings. LotusJeff asked for a date picker instead of the current “translation backfill max age days” field, humorously noting that forum admins with 20-year-old content prefer not to do mental math.

#Plugin

  • Dumbcourse still alive and merged. Satonotdead checked in on the old-browser-friendly UI plugin. Ars18 confirmed it’s still active and has been merged into their JTechTools plugin, though the standalone repo remains available read more.

  • Discourse Reactions: join-in and notification feedback. Bartv suggested making it easier to “join in” on existing reactions (like Slack/Discord). RSEhlers noted duplicate notifications for both Reactions and Likes read more.

  • Discourse Translator deprecated in favor of AI. Awesomerobot advised users to switch to Discourse AI for automatic translation, which is more robust, handles categories/tags, and provides content to search engines while often costing less than self-hosted LibreTranslate.


Activity by the Team Group

The Team group members have been busy tackling tough issues and offering guidance:

  • Lilly was exceptionally active, first providing a detailed multi-part diagnosis of avatar loading delays after a migration to Cloudflare R2 — covering on-the-fly resizing, IPv6 timeouts, and Gravatar delays. She later identified an incorrect token type at Cloudflare R2 as the root cause of an upload failure.

  • Sam prioritized a PR to fix IME composition issues with the word limit, and pointed out that the diff_too_complex feature he added in February should handle large post edits.

  • Falco guided Satonotdead through configuring internal AI endpoints, suggesting the DISCOURSE_ALLOWED_INTERNAL_HOSTS env variable with the domain name, and explained the caching and two-phase translation process for the AI translation progress graph.

  • Chapoi responded to the Foundation theme display bug, identified the fix (enabling Modernize Foundation theme), and submitted a PR. They also questioned whether the post voting option appearing in all categories was a regression.

  • Awesomerobot was a powerhouse: explaining how banner topics work and identifying the group permissions restriction. They diagnosed the email CSS issue, provided a theme component hook for filtering post voting options, and clarified the PWA install banner settings. They also alerted the community about the new acronyms AIO and GEO for AI-driven SEO replacements, and fixed a topic-list-thumbnails issue.

  • Markvanlan responded to the nested replies bug report, asking for clarification on whether posts were being sent to the wrong topic entirely or merely misnested.

  • Nat merged the IME composition fix PR.

  • Zogstrip closed an old bug thread in favor of the new large-edit discussion, fixed the API scopes for listing badges, and noted the discourse-activity-pub plugin is not bundled with core.

  • Jordan.Vidrine was cc’d by Chapoi regarding the post voting option behavior.


Yesterday, the community spent over 4,000 words helping one admin debug avatar loading — and in the process, likely saved dozens of other forum operators from tearing their hair out over R2 migrations. Maybe that’s the real AIO.

Today on meta.discourse.org


Key Stats

Metric Count
New Posts 126
New Topics 47
Likes on Posts 187

Top Posters by Likes & Posts (last 24 hours)

User Likes Posts
Awesomerobot 28 14
RGJ 17 5
Chapoi 13 10
Merefield 12 8
Falco 11 8
Jawestenberg 8 1
Paul_King 7 4
Canapin 7 2
Nat 6 4
Small-Lovely-Cat 6 2

Interesting Topics

#self-hosting

  • How to install plugins without using a third-party host?Willy asked if it’s possible to install self-developed plugins on a self-hosted Discourse without relying on GitHub or other external services. The discussion quickly turned into a debate on the necessity of version control. RGJ argued that pushing to GitHub takes less than a minute, while Merefield emphasised that proper source control is the professional approach. Satonotdead raised concerns about GitHub’s reliability under DMCA takedowns. Awesomerobot pointed out that for small customisations, a theme component (no git needed) might be the right solution. read more

Support

  • Nested replies broken?Paul_King reported that enabling the new Nested Replies feature caused email‑in replies to appear in random threads. After updating to the latest build (and removing an obsolete mysql-dep.template.yml line from app.yml), the issue resolved. Chapoi confirmed that being on “2026.6.0‑latest” doesn’t always mean the latest commits — an additional update fixed the problem. read more

  • Mail jobs are failingJosip_Meštrović encountered a Unregistered function error in Sidekiq when sending mail. Awesomerobot quickly identified the culprit: a a:visited pseudo‑class in the custom email CSS at /admin/customize/email_style/css. Removing the invalid selector resolved the issue. read more

ux

  • “New Topic” button is not responsive when resizingRGJ demonstrated a bug where the “New Topic” button doesn’t reflow between icon‑only and text modes when the browser window is resized. Awesomerobot confirmed and provided a fix. read more

  • Cut off “Dismiss ⌄” buttonCanapin noticed an unwanted gap between the “Dismiss” label and the chevron‑down icon in the dismiss‑button component. Ted pointed out that the spacing is an intended design effect, but the recent modernisation of themes may have broken it. Chapoi will take a look when time permits. read more

  • Problème d’affichage dans le topicGilles reported broken button styling after an update, visible even in safe mode. Chapoi traced it to the “Modernize Foundation theme” setting – enabling that upcoming change fixes the buttons for everyone, regardless of which theme they use. A PR has been merged. read more

#announcements

  • Introducing a new “Post Type” Composer actions dropdown — In the ongoing discussion about the new composer menu, Gormus asked if the “Toggle post voting” option could be hidden when the category isn’t of type “Ideas”. Awesomerobot explained that the post‑voting plugin is currently site‑wide, but provided a registerValueTransformer hook enabling theme developers to filter the dropdown per category. read more

blog

  • I’m tracking down the world’s best community builders. Here’s what I’ve learned so far…Jawestenberg shared a blog post about the loneliness of community builders and the importance of NPS for measuring ROI. Ted resonated with the line “I came for the language, and stayed for the people” and suggested NPS is a good way to correlate community stats with business outcomes. read more

#data-and-reporting

  • AI Translation Progress GraphLotusJeff found the translation progress graph misleading (showing 99% when only a fraction of posts were translated). Falco explained the caching and two‑step process (language detection + translation). LotusJeff proposed a simpler reporting model with eligible vs. completed counts and shared his own Data Explorer SQL queries. Nat promised improvements for July. read more

bug

  • FIX: Word limit shouldn’t break IME compositionSmall-Lovely-Cat revived a stale PR that prevents the word‑limit warning from interfering with Input Method Editor (IME) compositions. Sam prioritised it, and Nat merged the contribution. read more

  • FIX: Boosts in reviewables should link to posts rather than topicsSmall-Lovely-Cat contributed a fix for the Boosts plugin: when a boost is reported, the review‑queue link now points directly to the post instead of the topic. Nat confirmed that Zogstrip merged the PR. read more

#plugin

  • Dumbcourse – Old‑browser friendly UI at /dumbSatonotdead revived an old thread about a lightweight, D‑pad‑friendly UI. Ars18 confirmed the project is still alive and has been merged into their master plugin, while the standalone repo remains available. The community appreciated the modular approach of keeping features switchable. read more

  • Discourse Translator — In the long‑running translator thread, Awesomerobot advised users to migrate to Discourse AI for automatic translation, as it is now the more robust feature (automatic, includes categories/tags, costs as little as $10/year for 10k posts). NateDhaliwal added that self‑hosting a model via Ollama is an option. read more

#feature

  • Can I force English for unsupported languages?Jagster, running a Finnish forum, wanted to serve English to visitors whose browser locale is unsupported instead of forcing Finnish. Falco replied that a fallback‑locale feature doesn’t exist yet. Nat suggested setting the default locale to English, since the content‑localisation setting uses the default locale as fallback. read more

Activity by the Team Group

Members of the Discourse team were active across many threads yesterday. Here’s a summary of their contributions:


Yesterday’s deep dive into plugin installation reminded us that even small plugins deserve a GitHub home, but the real community building happens when we help each other out – even if it means convincing someone to use version control.