Weekly Summary

This week on meta.discourse.org

Key Stats

Reporting window: 2026-03-08 → 2026-03-15, as reflected across active threads like the FAQ/Guidelines housekeeping discussion (read more) and late-week UX/browser reports (read more).

  • Total new posts: 426
  • Total new topics: 72

Top users (posts + likes in the last 7 days)

User Posts Likes Recent reference
Falco 24 50 Cloudflare IP bans explanation (read more)
ToddZ 23 37 Theme-component solution for /groups intro text (read more)
Canapin 16 30 “How old is your forum?” community thread (read more)
LotusJeff 9 29 “How old is your forum?” opener + history (read more)
nat 9 20 Badge i18n deep dive + console workaround (read more)
sam 7 19 OpenAI/Azure “service tiers” announcement (ai, #Announcements) (read more)
awesomerobot 12 17 Form templates multi-template bug + fix guidance (read more)
NateDhaliwal 19 16 “Quick start” self-host install guidance (read more)
merefield 9 15 Dashboard traffic-graph scaling feedback (read more)
Danielle 3 14 Webinar announcement: moderator programs (read more)

Interesting Topics

#Announcements

  • Discourse AI got OpenAI/Azure “service tier” selection, letting admins trade off cost vs latency vs reliability in provider settings (ai, #Announcements) — read more

  • A new webinar was announced: “Creating & Nurturing a Moderator Program” (with a promised replay for registrants) (webinar, #Announcements) — read more

  • Hosted AI capacity limits were increased significantly (plus model + throughput improvements), with updated quotas reflected on the pricing page (ai, #Announcements) — read more

blog

  • The Discourse team published a detailed write-up on the Upcoming Changes system and how it supports gradual rollouts across varied site configurations (blog) — read more

#community-building Building

  • A fun and insightful thread asked: “How old is your forum?”—prompting migration histories from Yahoo Groups, phpBB, Ning, vBulletin, and more (#community-building Building) — read more

  • Cross-platform community ops came up again in a “WhatsApp challenges” follow-up: one practical pattern was capturing key takeaways from chat groups into a shared Discourse category (#community-building Building) — read more

  • Meta’s evergreen “Discourse is great” energy continued, with community members sharing milestones and encouragement (#community-building:praise) — read more

Support

  • A tricky edge case: after merging topics, one post could no longer be marked as the Solved answer—eventually traced to an existing solved record in the original topic and manually repaired, with a fix planned (solved, Support) — read more

  • Multilingual admins asked how to localize custom badges and groups; the key takeaway: seeded badges are i18n’d, but custom badges need translation overrides (currently console-dependent) (translation, badges, Support) — read more

  • A “forum acquisition” question explored how to bring topics from one Discourse into another without full restore, pointing back to established migration workflows (Support) — read more

  • A clean, low-code customization request: adding explanatory text above /g (groups index) was solved with a tiny theme component using After Header + CSS gating (groups, Support) — read more

  • Moderator capability boundaries surfaced: moderators can delete users, so the recommended approach for tighter control was Category Moderators + per-category moderator groups (Support) — read more

  • A self-hosting anxiety post (“install on my VPS”) turned into a practical mini-guide: one-line installer, backup mindset, and hosted-vs-self-host tradeoffs (#Self-hosting, Support) — read more

  • A Onebox/OpenGraph failure that worked on Meta but not on the user’s site ended up being a certificate chain / server-side fetch trust issue, reinforcing that Onebox generation is server-side and sensitive to TLS setup (onebox, Support) — read more

  • Admins trying to “require TOS acceptance” used a clever workaround: a required custom user field checkbox to gate saving profile/preferences (Support) — read more

bug

  • A dashboard UX/data issue: the Site Traffic graph becomes unhelpful when crawlers dominate, prompting a request for smarter scaling or a “rescale” control (dashboard-reports, bug) — read more

  • A content-localization bug: localized tag names weren’t being cleaned/slugified, breaking body classes and tag display; a fix plus migration shipped (content-localization, bug) — read more

  • Form Templates: selecting multiple templates per category didn’t persist after refresh due to missing save behavior in a simplified category-creation flow; workaround + merged fix provided (form-templates, bug) — read more

  • Discourse v2026.3.0 upgrade pain: discourse-subscriptions failed boot due to a route constant load-order/deprecation edge case; a core PR removed the deprecation point (subscriptions, bug) — read more

  • A scary report: using topic timers + schedule publishing in a draft with a missing destination category could spiral into a heavy, “catastrophic” UI state (topic-timers, bug) — read more

ux

  • Mobile composer toolbar: when too many buttons exist (often from theme components), later buttons can look “missing”; discussion turned to whether scroll affordances (like arrows) should appear on touch devices (composer, ux) — read more

  • On some tablets/browsers, the floating search widget produced bizarre input behavior (reversed character order), eventually linked to a floating keyboard feature (search, Support) — read more

  • A login-page polish issue: top logo alignment shifts when language switcher or theme toggle is present (login, ux) — read more

#customization:plugin / #customization:theme component

  • A notable new plugin: diskuz Call brings peer-to-peer voice/video calls into Discourse using WebRTC (signaling on server, media P2P/TURN) (#customization:plugin) — read more

  • Another plugin showcase: a Discourse Points Mall prototype (check-in, shop, orders, ledger) with candid notes about current bugs and readiness (#customization:plugin) — read more

  • A theme-component tooling thread: Tag Style Tool shipped updates quickly after reports of disappearing UI and Font Awesome SVG subset quirks (tags, #customization:theme component) — read more

  • A no-rebuild alternative to server plugins: Bilibili inline player as a theme component, compared against an existing rebuild-required plugin approach (onebox, #customization:theme component) — read more

  • “Banner Featured Links” got an update to address htmlSafe deprecation and other cleanup, pinned to 2026.3.0-latest (#customization:theme component) — read more

  • The terminal-based Discourse client “termcourse” added MessageBus-powered realtime notifications and began aligning shortcut conventions (experimental, #customization:extras) — read more


Activity by the @team Group

  • Falco focused on practical admin fixes and roadmap notes: explained Cloudflare “everyone got banned” IP behavior and the need for the Cloudflare template (read more), confirmed work on a new UI to display full “and N more…” reactions lists (read more), clarified Data Explorer API behavior changes and limits/pagination guidance (read more), expanded hosted LLM capacity limits and model capabilities (read more), and outlined replacements for Google’s discontinued Custom Search integration plus future “native web search tools” support (read more).

  • nat delivered several “deep internals” clarifications and fixes: corrected the realities of i18n for custom badges and provided the console-based TranslationOverride approach (read more), investigated localized tag output and shipped a cleanup fix + migration (read more), responded to dashboard traffic-graph scaling feedback with “changes coming” context (read more), and pointed users to the experimental tag settings page for managing translated tags after AI translation (read more).

  • sam shipped and discussed multiple AI/automation developer-facing improvements: announced OpenAI/Azure provider service tiers and how to configure them in LLM settings (read more), advanced the “automation pipelines” idea (trigger → filters → actions, observability, extensibility) (read more), responded to upgrade issues around USERNAME_ROUTE_FORMAT with a core PR to remove the deprecation pressure point (read more), and continued triage on AI Search resource usage expectations vs unexpected CPU pressure (read more).

  • awesomerobot handled a broad spread of admin UX + bug triage: reproduced and confirmed the multi-form-template persistence bug, suggested a workaround, and followed with a merged fix (read more); investigated toolbar overflow behavior and the “hidden arrow on touch devices” tradeoff (read more); identified a third-party plugin causing “official” components to fail after update and offered safe-mode isolation steps (read more); and suggested structured approaches for gating access via guidelines acceptance using Policy + Automation patterns (read more).

  • Danielle coordinated community-facing updates: announced the moderator-program webinar and confirmed recordings will be shared after the session (read more), and helped steer a process for reviewing/updating older FAQ/Guidelines documentation references (read more).

  • supermathie provided crisp diagnostics and user-expectation improvements: tested problematic mobile browsers for text-selection UI issues and concluded the most viable path is recommending supported browsers (read more), documented a temporary email regression caused by a gem update (with break/fix commits) for anyone impacted that day (read more), and proposed a UX hint for multisite “guest” admins who can’t access /sidekiq to reduce confusion (read more).

  • chapoi engaged on UX polish and dashboard/report behavior: clarified the intent behind the site-traffic Y-axis behavior and agreed it should be smarter in crawler-heavy scenarios (read more), pointed developers to Discourse docs being included directly in the core repo (read more), and confirmed a tablet TOC overlay bug should be fixed by an upstream DiscoTOC PR (read more).

  • martin worked on both production troubleshooting and product communication: diagnosed why “mark as solution” can fail after merges (a prior solved record in the old topic) and applied a fix while investigating a preventative change (read more), and published the companion discussion topic for the “Upcoming Changes system” blog post (read more).

  • HAWK kicked off a cleanup thread about FAQ/Guidelines link confusion, which quickly evolved into a documentation and process review effort (read more).

  • pmusaraj supported Discourse ID troubleshooting: requested backtraces for “can’t alloc thread” signup failures and helped narrow suspicion toward memory constraints / reproducibility via fresh installs (read more), and offered direct cleanup of duplicate redirect-URI credentials as a temporary fix while workflow improvements are in progress (read more).


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

A busy week on Meta (2026-03-15 → 2026-03-22), with lots of energy around experimental UX (nested replies), developer-facing changes (plugin build tooling + deprecations), and a steady stream of admin/support troubleshooting across hosting, auth, and calendars (see the mega test thread: read more).


Key Stats

  • New posts: 644
  • New topics: 82

Most active / most appreciated users (posts + likes received this week):

User Posts Likes
Moin 62 108
Falco 30 111
chapoi 21 33
NateDhaliwal 27 21
darkpixlz 16 29
Lilly 14 44
david 13 60
merefield 13 24
martin 6 27
Canapin 10 44

Conversation drivers worth noting (with sources):


Interesting Topics

#Announcements


Dev


ux


#Site feedback


Support (and #Self-hosting)


#Nested Replies Testing

  • Discourse shipped a very experimental nested/threaded topic view plugin for testing, explicitly framed as feedback-on-feel rather than bug reporting: Testing Nested Replies on Meta.

  • To reduce “where did the other posts go?” confusion once deep nesting triggers a detached “context view,” a UI clarity pass was proposed and demoed in UX improvements for deeply nested thread view.


#Plugins / #customization:theme component / #customization:extras


#contribute:feature


bug


Activity by the @team Group


Thanks for reading, and I’ll see you again next week! :slight_smile:

1 Like

This week on meta.discourse.org

Key Stats

Across the last 7 days of discussions and fixes (e.g. v2026.3.0-latest.1 security fixes discussion and releases site feedback):

  • Total new posts: 502
  • Total new topics: 68

Top users (posts / likes received this week)

  • Moin34 posts / 75 likes — helped triage issues like topic-voting tag punctuation (read more) and clarified upload cleanup behavior after deletions (read more).

  • david20 posts / 70 likes — responded on release visibility and Meta announcements (read more), shipped a fix for stalled “new version emails” (read more), and iterated on the releases site (RSS + styling feedback loop) (read more).

  • Falco12 posts / 55 likes — explained the security-fix wave context (read more), pushed forward the Patreon API v2 upgrade (read more), and discussed PM translation targets for Discourse AI (read more).

  • zogstrip12 posts / 29 likes — lined up a string of fixes including emoji alias validation (read more) and moderation/queue UX improvements (read more).

  • merefield12 posts / 28 likes — gave thoughtful risk analysis on “database residue cleanup” plugins (read more) and nudged toward maintainable solutions for privacy/link fetching (read more).

  • R23D_Printing21 posts / 28 likes — rapidly iterated on Discourse Challenges, adding weekly intervals + mod access and then a DM-driven ChallengeBot (read more).

  • awesomerobot9 posts / 27 likes — fixed UI regressions like topic-voting punctuation (read more) and proposed API permission improvements for about.json (read more).

  • darkpixlz19 posts / 25 likes — helped debug CDN/CORS plugin breakage (read more) and correctly pushed back on hiding “big red” broken-theme banners (read more).

  • RGJ8 posts / 20 likes — delivered a crisp explanation of when uploads are purged after permanent deletion (read more) and suggested safer proxying approaches for link fetching/privacy (read more).

  • nathank16 posts / 20 likes — offered practical admin guidance (e.g. about-page group visibility) (read more) and explored feature/workflow approaches around events and calls (read more).

Interesting Topics

Support

  • Ed_S raised concerns about “stealth” releases and asked for release posts to return to Announcements; david acknowledged the pain and said the team is discussing better pointers back on Meta (read more).

  • Confusion around release consumption continued in a focused thread about releases.discourse.org usability, with requests for RSS and better readability—resulting in an RSS feed going live quickly (read more).

  • A hosted-free-plan signup flow hit a “too many sites provisioned” error; HAWK and pedro jumped in to investigate and confirm inputs (read more).

  • Self-hosters debugging Discourse ID learned the hard requirement: if your site tells Discourse ID the redirect URI isn’t HTTPS, you’ll need to correct force_https / proxy headers—discussion included common reverse-proxy misconceptions (read more).

  • A practical support thread asked how to remove moderators from the /about page without removing the group; a simple “hidden groups” approach (and optional dynamic groups) solved it (read more).

  • A “big red banner” question turned into a reminder: broken-theme alerts are intentionally loud, and the right fix is to address the component, not hide the warning (read more).

  • An admin asked how to move a banner/image to the very top—answers emphasized that this is best done via a small theme component/CSS tweak rather than hacking markup (read more).

bug

  • A long-running annoyance—no “new version available” emails—was traced to a redis gem change and got a core PR to fix the broken job (read more).

  • A sharp “it looks like plain HTML” issue in Facebook’s in-app browser on iPhone was attributed to crawler detection misclassifying MetaIAB, and a core PR was opened to adjust defaults (read more).

  • Multiple admins reported plugins silently failing after upgrade due to CDN-side CORS behavior; early debugging pointed at BunnyCDN headers and regression timing (read more).

  • A small-but-real UI papercut: with topic voting enabled and “0 votes” hidden, a comma appears after the last tag; Meta’s theme customization was implicated, and it was quickly adjusted (read more).

  • A painful composer incident: uploading HEIC images caused an error + reload, losing a long draft; investigation focused on reproduction steps and error details (read more).

ux

  • A Meta UX report noted 2FA inputs left-aligned when logging in via “email login” flow; a fix PR was opened and Meta’s login layout got renewed scrutiny (read more).

  • Emoji correctness got airtime: :champagne: doesn’t exist, but an alias made it appear that it should; the follow-up added validation to prevent aliases to non-existent emojis (read more).

  • A mobile affordance request: add a grip bar to the post admin actions bottom-sheet (matching the topic admin actions UI) to improve discoverability and handling (read more).

  • A feature UX request proposed a wide-screen “expand table” viewer (read-only) so large markdown tables are readable without entering edit mode (read more).

  • Continued experimentation on Meta with nested replies surfaced both excitement and navigation confusion, especially when coming from notifications or flat view (read more).

Dev

  • Theme/plugin authors got another push: .hbs files are deprecated (move to .gjs), and the topic also highlighted Ask Discourse as a quick helper for small conversions (read more).

  • Inline <script type="text/discourse-plugin"> support is now removed; the canonical modernization thread was updated with the March 2026 removal milestone (read more).

  • A team update: the new plugin build system talk was shared externally (Ember Europe meetup), giving devs a path to learn the new workflow (read more).

#customization:plugin

  • Discourse Challenges evolved rapidly: weekly intervals, mod access, and then ChallengeBot (DM confirmations, reminders, commands like status/leaderboard/streak) landed in quick succession (read more).

  • A new plugin idea, Plugin Cleaner, aimed to scan and remove orphaned “residue” from uninstalled plugins; feedback highlighted the inherent risk of deleting unknown/now-unmigrated plugin structures (read more).

  • Discourse Member Application introduced a structured /apply intake flow for invite-only/private communities, replacing external forms/spreadsheets with an in-Discourse review + invite process (read more).

#customization:extras

  • Dexo, a native iOS Discourse client built with UIKit/Swift, showcased multi-forum support, HTML rendering, auth flows, and a clean UI approach (read more).

#community-building Building

  • A new community owner asked for feedback on a fresh Discourse forum for a game community; replies covered theming, UX polish, and making Discourse feel less “generic” out of the box (read more).

  • A Portuguese-language community manager asked if their game forum is organized well; suggestions included rethinking tag/subcategory tradeoffs and improving onboarding routes (e.g. linking directly to prefilled composer) (read more).

Marketplace

  • A large-scale request sought a phpBB → Discourse migration expert for ~870k posts with Hebrew RTL and strict SEO/redirect requirements, emphasizing minimal downtime and URL mapping (read more).

Activity by the @team Group

  • david focused heavily on the release experience and upgrade signals: he addressed concerns about missing Meta announcements and dashboard confusion in the security-fix thread (read more), moved and organized releases-site feedback while shipping improvements like RSS quickly (read more), and responded to self-hosting version-pin questions (and corrected where to set version:) (read more). He also pushed core fixes/updates spanning “new version” email delivery (read more) and UA detection for the Facebook iPhone in-app browser (read more), plus documented the removal of legacy inline script tags (read more).

  • Falco mixed product feedback, integrations, and AI: he provided context on why many security fixes landed together (read more), updated the Discourse blog’s embedded comments experience and flagged theme/padding issues to iterate on (read more), and progressed the Patreon plugin API v2 migration—adding a custom user agent as requested (read more). He also clarified Chat/GIF behavior expectations (feature vs bug) (read more), pointed calendar feature requests to the new subscription URL work (read more), and proposed improving AI translation controls so admins can explicitly choose whether to include PMs (read more).

  • zogstrip was on a bug-fix tear, consistently linking fixes to PRs: moderation queue/composer flow fixes were actively discussed (read more), whispers bump behavior got an implementation plan (read more), onebox issues (including broken x.com behavior) were queued for correction (read more), and permanently-delete edge cases were acknowledged with an inbound fix (read more). He also improved the emoji alias pipeline by preventing aliases to non-existent emojis (read more) and continued polishing admin/reporting UX expectations on “Upcoming Changes” toggles (read more).

  • awesomerobot concentrated on UI/UX paper cuts and pragmatic improvements: the topic voting/tag punctuation regression was quickly fixed on Meta (read more), the email-login 2FA alignment issue got tracked to a specific flow and queued for correction (read more), and clarity was added around semantic/AI search results vs exact matches (read more). On the API side, he opened a PR to allow granular API users to read about.json (read more) and asked for better bug reproduction on the HEIC/draft-loss report (read more).

  • supermathie helped unblock self-hosted identity/auth issues: he explained why Discourse ID insists on HTTPS redirect URIs (and what force_https actually does) (read more), and followed up on API scope/error messaging discussions around about.json access with granular keys (read more).

  • sam weighed in on “hard to reproduce” hosting issues and broader UX: he participated in a tricky theme git-clone failure thread (pointing to GitHub outages / rate limiting as likely suspects) (read more), pushed for a holistic rethink of how “post approval” feels to end users (queue transparency, notifications, composer behavior) (read more), and refreshed core documentation by cleaning up stale material (e.g. the “Searching effectively” guide) (read more). He also updated admin-facing composer popup docs (read more) and pinged engineering attention toward an Extras integration link going 404 (read more).

  • pmusaraj investigated ActivityPub interoperability issues: Mastodon’s parameter change (scopescopes) was identified and a fix proposed upstream/in-plugin (read more), and follow-on Discourse↔Discourse AP verification issues were narrowed down to Meta actor behavior vs other actors (read more). He also confirmed Discourse ID improvements for redirect-URI conflicts going forward (read more) and followed up on alternate-email behavior on Free tier sites (read more).

  • manuel gave direct end-user guidance on notification settings (watching/tracking) when someone reported “Meta won’t notify me anymore” (read more).

  • HAWK acknowledged and escalated a hosted free-plan provisioning error to the team, keeping the support loop moving quickly (read more).

  • pedro jumped into the same hosted provisioning issue to gather diagnostic details (the exact domain value entered) and help confirm the workaround (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

In the last 7 days (2026-03-29 → 2026-04-05), Meta saw 596 new posts and 77 new topics. (If you’d like to generate similar rollups on your own site, see the Data Explorer + API approaches discussed in How can I post links to live reports or embed site activity? and Run Data Explorer queries with the Discourse API.)

Top users this week (posts / likes received):

User Posts Likes
Moin 60 93
Falco 25 93
RGJ 22 67
Lilly 20 52
Canapin 13 46
nat 12 46
awesomerobot 16 37
Ed_S 18 35
zogstrip 15 33
david 14 28

A big chunk of the week’s energy concentrated around new interaction affordances (the new Boosts experiment: read more), embedding Discourse as a full comment system (read more), and continued iterations on AI / localization workflows (for example: tag translations quality feedback in read more, plus follow-on fixes like translated tag icons support in read more).


Interesting Topics

#announcements

  • Discourse is experimenting with Boosts (a reaction-with-a-short-message) and the community debated UX overlap with reactions/likes, moderation implications, and naming (“naming things” even got a cameo). read more

  • Embeds got a major upgrade: “full app mode” now loads the complete Discourse app inside the iframe so visitors can reply/like/quote without leaving the host site, with discussion about scrollbar discoverability and “reply to topic” placement. read more

  • Discourse AI agents can now connect outward to any MCP server (“Bring your own MCP”), expanding the automation surface for AI agents via external tools. read more

  • A small but meaningful support improvement: users Tracking/Watching topics in solved categories now get notified when a topic is marked solved—plus early feedback on notification preference edge cases. read more

  • The March 2026 monthly release post landed with links to changelogs and patch releases, and sparked at least one smooth “switch to release track” report. read more

blog

  • nat published a “behind the scenes” history of Discourse’s multilingual evolution over 13 years, with follow-up praise and context from the team. read more

events

  • The team clarified how Meta will organize Webinars vs Community Office Hours, including where replays and upcoming sessions will live going forward. read more

#contribute:site-feedback

  • ask.discourse.com went down briefly, was confirmed by multiple folks, and quickly fixed. read more

  • AI-generated tag translations prompted a detailed quality review (context-missing translations like composer → “Komponist”), plus discussion of grounding strategies (tag descriptions, code/glossary context). read more

  • A request to add Ukrainian and Russian to Meta’s language switcher received a positive signal from the team for near-term action. read more

bug

  • A mobile regression caused some Meta pages to render only header/title on iOS browsers; investigation traced it to a recent change in a theme component and a revert followed. read more

  • Tag banners temporarily lost their tag display (empty-looking banners), quickly diagnosed as a data availability change, then patched in the theme component. read more

  • Numeric-tag edge case: an old /tag/#### URL pattern produced a 500 error (bad for crawlers); the team confirmed they had eyes on a fix while keeping /tag/name compatibility. read more

  • The category experts plugin crashed user merges due to validation constraints; a fix was queued via plugin PR. read more

  • A translation regression showed AI “thinking/commentary” leaking into German output; the agent was updated and affected titles/posts were cleaned up. read more

  • Backups to Cloudflare R2 broke on multipart uploads with a newer aws-sdk-s3 version; pinning versions restored functionality for affected installs. read more

  • Archived-topics + reactions had incorrect logic: some posts could still be reacted to under certain conditions; a core fix was prepared. read more

#contribute:feature

  • The tag icon component gained support for translated tags (with a PR referenced and screenshots showing translated tag labels + correct icons). read more

  • Mistral embeddings integration hit an OpenAI-compat mismatch (dimensions vs output_dimension), prompting a request to support Mistral’s parameter naming. read more

  • A practical media request: detect or reject VP9-in-MP4 uploads that silently fail on iOS Safari, with discussion about safe, optional transcoding approaches. read more

  • Admins asked to allow incoming email for automatic groups (to avoid “duplicate group + sync members” workarounds), with notes about existing console-only workarounds. read more

ux

  • The composer’s “Discard” during edit flow remains confusing: proposals included changing UI copy to “Cancel Edit” and only prompting when there are actual changes. read more

  • Enforced MFA can “lock users into” the security screen with limited guidance; the thread explored better customization patterns (site text vs theme-component insertion above the wrapper outlet). read more

  • A regression report showed category security permissions being reset when changing parent/subcategory relationships under “simplified category creation,” with staff confirming investigation. read more

  • A long-standing workflow papercut: users can’t unfollow suspended/banned accounts without temporarily unsuspending; a fix PR was linked. read more

Community Building

  • A candid thread on growing a community without a product/service “pull” revisited activity flywheels, the 99–9–1 pattern, and sustainable “not founder-driven” participation. read more

General

  • “How minimal is your forum?” prompted concrete inventories of what admins choose not to enable (categories, plugins, chat, reactions, LLMs), and naturally drifted into trade-offs around tags and trust levels. read more

Activity by the @team Group

  • lindsey shipped two user-facing announcements: the new Boosts experiment (read more) and improved Solved notifications for watchers/trackers in support categories (read more). She also checked in on a “Current Projects” status item related to Crowdin styling components (read more).

  • Falco drove multiple product-and-platform threads: he announced the new full app mode for embeds and followed up on UI simplification and behavior details (read more); reinforced iOS home-screen push notification behavior (and pointed at the root cause for fragility) in the push notifications thread (read more); confirmed Meta could add Ukrainian/Russian in the language switcher soon (read more); and discussed VP9 upload mitigation strategies with references to Video Stream as an option (read more). He also continued iterating on MCP and AI workflows (for example, weighing “workflow-trigger” approaches for mention-only bots in read more, and highlighting MCP post-edit support in read more).

  • nat focused heavily on localization and AI translation quality: she posted the long-form multilingual history “Building for Every Language” (read more), responded quickly to the “AI-translated tags lack context” feedback and discussed prompt/tooling improvements (read more), and confirmed a fix was coming for the numeric tag URL 500 edge case (read more). She also delivered/queued improvements across the localization surface area, including translated tag icon support via PR (read more) and a targeted fix for the “AI commentary/thinking” leak into German translations (read more). On the configuration side, she outlined a more granular future for AI translation scope (including PM translation controls) with a migration plan and PR link referenced in-topic (read more).

  • awesomerobot was active across product UX and maintenance: he clarified how Boosts fit into an interaction hierarchy and confirmed the feature will be optional, while also discussing safety features like watched words and future AI scanning possibilities (read more); diagnosed and fixed a regression in tag banners with a fast PR turnaround (read more); and provided a concrete theme-component approach for adding custom MFA enforcement guidance via an outlet insertion (read more). He also opened/merged workflow improvements like making rejection flows create a draft for editing after review-queue rejection (read more), adjusted confusing system copy about “reply to this message” when no contact user/group is configured (read more), and acknowledged Ask Discourse UI oddities like the redundant “Back to Forum” link on the homepage (read more).

  • zogstrip landed a wide set of fixes and PRs across core and official plugins/components: he addressed Boosts questions and clarified that boosts won’t reorder posts (read more); fixed “likes/reactions in archived topics” logic (read more); linked a fix PR for unfollowing suspended/banned users in the follow plugin (read more); and handled several operational papercuts like group bulk-invite “notify users” behavior (read more) and an RTL issue in external link icon behavior (read more). He also clarified a misunderstood signup-related setting and updated its description to reduce admin confusion (read more), and queued a fix for acceptedAnswer schema issues discovered via Google Search Console (read more).

  • david provided deep technical support and release communication: he explained why CORS issues surfaced after recent upgrades (module scripts + headers) and guided admins through NGINX/CDN rebuild requirements, including pointing to the exact fix path and rebuild behavior (read more); posted the March 2026 release announcement with changelog links (read more); and debugged an AI-assisted migration collision scenario in discourse-ai, including the underlying migration ordering details and mitigation options (read more). He also merged and released a dependency PR (Sidekiq 8 support for mini_scheduler) rapidly after submission (read more).

  • sam continued pushing Discourse AI + MCP forward: he announced “Bring your own MCP” for Discourse AI agents (read more) and published the admin guide for connecting MCP servers to agents (read more). He also weighed trade-offs around mention-only bot response logic (leaning toward defaults to reduce option sprawl) (read more), and engaged in the migration-collision thread with ideas like linting/skills to enforce correct timestamped migrations when using AI tools (read more).

  • mcwumbly participated in several “how we run Meta” and “how we ship changes” touchpoints: he praised and added context to the multilingual history post (read more), discussed a prototype “workspaces” approach that maps categories to team spaces (Slack-like) (read more), and shared how Meta tuned TL3 caps using Data Explorer, including a pointer to the exact query reference post (read more). He also acknowledged and queued investigation for a category-permissions reset regression under simplified category creation (read more), and continued tending the “content gardening hub” experiment thread’s mechanics and sidebar/tag behaviors (read more).

  • Bas handled an ops incident quickly: he confirmed and then resolved the ask.discourse.com outage, posting the “fixed” update once service returned (read more).

  • davidb identified the likely root cause of the mobile “borked topic page” issue as a specific commit in the discourse-tag-icons component, and initiated a temporary revert while investigating (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period covered: 2026-04-05 → 2026-04-12

  • New posts: 581
  • New topics: 78

Top users (posts / likes)

Notable launches & fixes that drove discussion

  • Bookmarks got a major discoverability improvement with “jump to bookmarked posts” from the topic footer action menu: read more

  • The Meta Branded theme rebuild shipped (new implementation + early look at the Blocks API), sparking a lot of UI/icon feedback: read more

  • A wave of quick UX and bugfix PRs landed (RSS exclude tags, calendar/iCal formatting, composer strings, localization edge cases), often with “fixed by PR” replies directly in-topic, e.g. RSS exclude_tag: read more

Interesting Topics

#Announcements

  • Boosts on Meta (#Announcements) — The ongoing “Boosts” experiment triggered a deep discussion about signal vs. noise, moderation implications, and UI density (especially on mobile), with proposals like folding/expanding boosts and concerns about “negative boosts”: read more

  • Easier access to bookmarks (bookmarks, #Announcements) — Discourse added quick access to all bookmarked posts in a topic via the bottom-of-topic bookmark control, making “where did I bookmark that?” much easier to solve: read more

ux

  • Mobile composer in 2026 (composer, mobile, ux) — Canapin kicked off a “mobile-first reality check” on the composer’s growing complexity; replies centered on what to remove, what must remain, and iOS-specific reliability issues: read more

  • How to close the tag selector on mobile (composer, mobile, tags, ux) — A small-but-daily papercut: the tag chooser doesn’t have an obvious “close” affordance on mobile, forcing users to learn a non-intuitive tap target: read more

  • Bookmarks UI edge cases on mobile (bookmarks, #contribute:feature) — A nuanced UI/mental-model thread: how should the footer bookmark icon communicate “topic bookmarked” vs “post(s) bookmarked”, and how do you keep actions consistent without hiding “jump to bookmarks” discoverability? read more

  • Community-building discussions on Meta (#Site feedback) — mcwumbly asked how Meta should better encourage community building / management discussions after category reshuffles (and what behavior/structure changes would help): read more

  • Feature/bugfix announcement topics and version clarity (#Site feedback) — A practical meta-process request: include versions in announcement topics so admins who can’t realistically run tests-passed daily can still plan upgrades: read more

#Site feedback

  • Rebuilding the Meta Branded theme + Blocks API (meta-theme-feedback, meta-redesign-2026, #Site feedback) — The new Meta theme rebuild showcased Lucide icons, tighter theme/palette controls, a custom homepage direction, and an explanation of how Blocks differ from PluginOutlets for more stable layouts: read more

  • Inaccurate plugin availability notes (#Site feedback) — Several official plugin topics still claim “available on all hosting tiers” despite new plan tiers; the thread explored linking directly to pricing tables and reducing “two sources of truth” drift: read more

#customization:theme component

  • Discourse Lucide Icons (#customization:theme component) — A dedicated theme component topic for Lucide landed, quickly collecting icon mapping feedback (e.g., reply/share confusion, filled heart behavior, missing icons like calendar-heart): read more

  • Topic Hover Cards (#customization:theme component) — A new component proposes tooltip-style previews when hovering/tapping internal topic links; early feedback asked for clearer screenshots/preview before adoption: read more

  • Highlight to Search (search, #customization:theme component) — A small productivity boost: highlight any text and immediately search for it, packaged as a new theme component with a live preview: read more

  • Customizable Print to PDF Button (#customization:theme component) — A new “clean print” topic button component aimed at improving topic export/printing compared to the stock print flow: read more

  • Unhide composer fullscreen toggle for tablets (composer, tablet, #customization:theme component) — A focused component to restore the fullscreen composer toggle on touch devices with larger screens where it’s hidden by default: read more

Support

  • OIDC login error on the OpenAI hosted forum (openid-connect, hosted-support, Support) — Users reported OIDC authorization failures; escalation + confirmation of resolution followed shortly after: read more

  • Private Topics / Ticket System permission scare (resolved) (Support) — A “this might be a security incident” moment turned out to be a configuration misunderstanding in the Private Topics plugin; the fix was to remove a group from “always show topics started by…” so TL0 users wouldn’t see everything: read more

  • Windows support expectations (Support) — A clear statement emerged: Discourse doesn’t support Windows versions Microsoft doesn’t support, though browser forks may work in practice for legacy systems: read more

  • New site signup stuck on “Almost there…” (resolved) (free-plan, Support) — New customer onboarding briefly failed; staff confirmed an incident and then a fix: read more

bug

  • Structured data issue: missing fields in mainEntity.suggestedAnswer (bug) — A schema/microdata regression was investigated and partially fixed; follow-up indicated remaining validator complaints around missing text/datePublished fields: read more

  • Data Explorer won’t save queries containing semicolons in quoted HTML entities (data-explorer, bug) — A validation rule blocked harmless semicolons inside quoted strings; the request was to only reject actual query terminators outside quotes: read more

  • Data Explorer output double-escapes HTML (data-explorer, bug) — A confusing display bug: Fish & Chips renders as Fish &amp; Chips in query results, making it harder to work with plain text outputs: read more

  • Exclude_tag broken in category RSS feeds (rss-polling, bug) — Excluding tags from category RSS didn’t work, but a /latest.rss?category=...&exclude_tag=... workaround did; a core fix was proposed right in the thread: read more

  • Highlight.js bundles + S3/CDN CORS fallout after upgrade (fixed) (cdn, #Self-hosting) — A subtle “assets loaded from the wrong CDN” bug caused highlight-js failures on codeblocks; a PR corrected highlightjs bundle URL behavior for that S3-only configuration: read more

Activity by the @team Group

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

  • New activity (last 7 days): 551 new posts across 73 new topics (weekly roll-up window 2026-04-12 → 2026-04-19).

  • Most active users (posts / likes received):

User Posts Likes
Lilly 28 86
Falco 21 74
Moin 46 73
sam 4 43
awesomerobot 17 40
darkpixlz 14 38
NateDhaliwal 30 33
RGJ 12 31
pmusaraj 11 23
merefield 9 22

The biggest “all-hands” conversation this week was about Discourse’s commitment to open source in the age of AI: read more


Interesting Topics

blog

  • Discourse reaffirmed its open-source stance (and why “security by obscurity” doesn’t hold up), in “Discourse is Not Going Closed Source” — a timely response to industry anxiety about AI-driven exploit discovery. read more

#Announcements

  • Category creation got a major UX boost: “Ideas categories” can now be created more easily with Discourse Topic Voting, including a clearer setup flow and defaults. read more

  • Embedding Discourse as a full comment system continues to mature; the announcement thread picked up more real-world feedback and follow-ups, including improvements like a floating reply/timeline affordance. read more

  • The “Automatically apply grids to image uploads” rollout got clarification: “Stable” in Upcoming Changes doesn’t always mean the setting will disappear; sometimes it’s just a default shift. read more

#contribute:feature

  • A long-standing UX debate resurfaced: the “replying to an old topic” warning is gone, and admins want a configurable, guidance-oriented replacement rather than a discouraging blocker. read more

  • Review Queue ergonomics: moderators asked for grouping reviewables by user (or stronger context) to avoid accidental “delete user” actions when flags and posts are separated in the queue. read more

  • Chat feature requests arrived in two closely-related threads: polls inside chat channels and default channel settings (e.g., pre-config threads, permissions, etc.). read more and read more

bug

  • A painful upgrade edge case: plugins couldn’t save category settings when enable_simplified_category_creation was on; devs were pointed to FormKit migration patterns and advised to temporarily opt-out via Upcoming Changes. read more

  • AI Translation scaling issue: Portuguese (pt) was skipped when translating into many locales at once, leading to investigation into backend failures, verbose logging, and retry behavior. read more

  • The admin post wrench menu had broken/missing hover tips; a core PR was opened to fix the copy/paste mistakes and add titles where helpful. read more

  • Tag UX inconsistency: the composer sometimes claimed a tag was allowed and sometimes not, depending on autocomplete input; the fix required “smarter” enforcement logic around limits. read more

  • Calendar/Event + Rollup regression: a missing chat link in the post event widget was traced to build system changes and quickly fixed via PR. read more

  • Users couldn’t see invite details tabs due to a route bug (controllerFor vs modelFor); a fix was shipped via core PR. read more

  • Hashtag autocomplete triggered console errors in safe mode, with one path tied to missing icon generation helpers; fixes landed while deeper reproduction continued for the second error mode. read more

  • RTL composer polish: the “new topic title” field remained LTR when empty; a markup-driven fix was proposed and merged to swap direction behavior based on whether the field has content. read more

ux

  • Mobile share modal improvement: the Copy button placement was awkward on small screens; a PR reorganized content while keeping the post date visible. read more

  • Review Queue transparency changed: flag scoring details were intentionally removed due to confusion, prompting discussion about what should remain visible and why. read more

  • A major discussion continued on mobile composing constraints (toolbar discoverability, cramped composer height, and the tension between web vs app expectations). read more

  • Free plan messaging confusion: users reported misleading shutdown / read-only timing communications, triggering staff investigation into timeline clarity and automation behavior. read more

Support

  • Redis cautionary tale: flushing Redis “fixed” a stuck “Updating…” UI, but responders emphasized Redis’ role in sessions/Sidekiq jobs and encouraged more targeted diagnosis. read more

  • Remote images: a hosted site began downloading and replacing remote image URLs unexpectedly; debugging suggested already-downloaded uploads (matched by hash) and cleanup timing. read more

  • Admin text customization: changing the “Welcome Back” text on /login was solved by locating js.login.header_title (and a reminder to press return in the search UI). read more

#customization:theme component

  • A lightweight UI enhancement: Discourse Dynamic Sidebar Icon toggles the sidebar icon based on open/closed state, with optional mobile behavior. read more

  • Wikipedia Lookup shipped as a theme component, adding tooltips and configurable base URL (supporting language-specific Wikipedias and other wiki domains). read more

#customization:plugin

  • A new experimental plugin: Buffer — streamline sharing topics on social media, adding “Share to Buffer” from the share modal / topic admin wrench for staff workflows. read more

wordpress

  • WP Discourse embedding edge case: WordPress “Gallery-only” posts broke preview extraction due to Readability (Mozilla Reader View algorithm); the thread mapped practical mitigations and relevant embed selector settings. read more

Activity by the @team Group

  • sam anchored the week’s biggest meta-conversation with a clear statement on why Discourse isn’t going closed source, and why openness still aligns with Discourse values. read more He also helped troubleshoot “real-time updates not appearing” by checking whether instances were behind a proxy. read more

  • Falco drove a high-signal, real-world embed performance discussion with Tecnoblog, covering caching headers, embed analytics behavior, and multiple iterative fixes (dynamic height, lazy loading, and embed-specific query trimming). read more He also confirmed language-setting behavior for mixed-language posts in AI translation. read more And he followed up on embedded comments improvements (floating reply/timeline affordances). read more

  • awesomerobot landed (or kicked off) multiple UX-quality fixes: correcting admin post menu hover tips via PR. read more They also explained the root cause of “plugins can’t save category settings” under the simplified category creation/FormKit path, including a migration reference and temporary mitigation via Upcoming Changes. read more Additionally, they fixed a user invite details visibility bug. read more

  • pmusaraj provided deep diagnostics on multiple issues: helping debug “AI translation skips Portuguese” by moving from config questions → rate/timeout hypotheses → verbose logging and backend errors. read more They also launched the experimental Buffer sharing plugin for staff social workflows. read more And they identified a tricky “topic doesn’t exist” error when switching locales as a stale ?preview_theme_id= URL parameter. read more

  • chapoi contributed to both product direction and support triage: reacting publicly to the open-source stance discussion and reinforcing internal pride in the decision. read more They also pointed review-queue UX discussions toward actionable UI space (expanding the insights area). read more And they pulled in staff to investigate a Free Plan “can’t disable read-only” report. read more

  • nat stayed active across AI and plugin support: advising on debugging AI translation failures (verbose logs, post size limits, LLM context windows, and model quality notes). read more They also traced and fixed a Docs Categories restore/indexing issue likely triggered by Calendar side-effects. read more And they patched a Livestream plugin edge case where the “everyone” group wasn’t behaving like a real group for permission checks. read more

  • manuel highlighted ecosystem tooling improvements (notably the improved releases UI) in the open-source thread. read more They also resurfaced a practical static archive generator project for Discourse, sharing a repo and demo archive for evaluation. read more

  • jomaxro clarified authentication architecture and limitations around 2FA with external logins (including Discourse ID), correcting an initial protocol detail and confirming that enforcement lives with the external provider. read more They also clarified the current stance on free trials and credit card requirements, and helped resolve confusion around very old guidance. read more

  • zogstrip shipped fixes and explanations across core behavior: acknowledging and fixing a composer tag-limit hint issue. read more They also pointed to the fix for hashtag autocomplete’s missing icon helper. read more And they explained the internal “diff budget” mechanism behind the “Diff is too complex to display” message, linking directly to the implementation. read more

  • martin clarified how Upcoming Changes status messaging works (and what “Stable” really implies), including guidance for future “setting default” impact types. read more They also helped close the loop on the “plugins can’t save category settings” thread by pointing to where warnings were communicated and confirming official plugin fixes were merged. read more


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Reporting window: 2026-04-19 → 2026-04-26 (last 7 days)

  • New posts: 615
  • New topics: 82

Top users (posts + likes received)

User Posts Likes
Lilly 41 110
Canapin 33 78
lindsey 7 75
Moin 37 68
Falco 22 66
nat 11 53
awesomerobot 11 40
Ed_S 17 40
merefield 15 40
chapoi 10 36

A few threads that drove a lot of discussion this week (sampling)

  • The Meta theme homepage got a Blocks-powered refresh, plus follow-up troubleshooting around “why don’t I see it when logged in?” (read more)

  • Reactions/likes UX changes kept evolving, including fixes and follow-ups for mobile/touch behavior (read more)

  • Nested Replies testing continued to surface real-world navigation + notification challenges (and feature debate) (read more)

  • Several admin-focused improvements landed in quick succession: Data Explorer charting (read more), category approval flexibility (read more), Topic Voting UX improvements (read more), and bulk pin/unpin actions (read more)

  • Internationalization and SEO got tangible wins: localized emoji search (read more) and a canonical/hreflang fix for ?tl= pages (read more)


Interesting Topics

#announcements

  • Current Projects (April 2026) landed with the latest “what we’re building now” roundup, framing recent deliverables like embedding improvements and ongoing focus areas for the platform (read more)

  • Data Explorer got more charting options: nat shared how the plugin now auto-selects better chart types based on result “shape”, making queries easier to interpret without exporting data elsewhere (data-explorer) (read more)

  • Category approvals became more flexible: new category moderation controls allow “everyone except certain groups” or “only certain groups” approval requirements, reducing mod workload while keeping guardrails (#announcements) (read more)

  • Topic Voting UX improvements shipped: voting access while scrolling, prompts to follow after voting, and improved “Hot” sorting made idea categories feel more responsive and intentional (topic-voting) (read more)

  • Bulk pin/unpin is here: admins can now pin or unpin multiple topics at once from topic list bulk actions—small change, big time saver for ongoing curation (#announcements) (read more)

  • Simpler email subject lines: lindsey outlined changes that remove redundant/technical formatting from email subjects to make communities feel less “developer-ish” in inboxes (email) (read more)

  • Emoji search now works in your language: emoji keyword matching expanded beyond English into 48 locales—a long-standing need for multilingual communities (localization) (read more)

#contribute:site-feedback

  • Meta’s homepage got a dashboard-style update: derek rolled out a Blocks-based homepage layout (events, hot topics, contributors), with discussion on why educational video content is surfaced and how personal homepage preferences interact with the new “Home” link (meta-redesign-2026) (read more)

  • Where should “show-and-tell” posts go? mcwumbly suggested a lightweight convention: post in General and tag show-and-tell—then let patterns emerge before adding structure (and the topic itself became a mini show-and-tell) (read more)

  • Category organization feedback continued: users highlighted friction around long inline category references (e.g. parent/subcategory paths), hashtag completion ergonomics, and discoverability tradeoffs after the Meta category refresh (meta-redesign-2026) (read more)

  • Restricted/private-ish tags leaking into UX: the “tag cleanup” thread resurfaced questions about whether restricted tags should be discoverable to unauthorized users at all—leading to investigation and a core fix (tags) (read more)

  • Possible slow rendering with disco-toc + many headings: Moin reported noticeable delays that disappeared in safe mode, raising suspicion that certain components (or ToC generation) may be too heavy on long/structured posts (disco-toc) (read more)

ux (and UX-adjacent buglets)

  • User deletion modal had an absurdly long button label on mobile: Canapin reported the truncation, and awesomerobot proposed a redesigned flow (choose delete type first, then confirm) with a PR already in motion (mobile) (read more)

  • Event date styling next to topic titles was confusing on mobile: the mobile rendering lacked the visual separation seen on desktop, prompting a quick “make it consistent (and simpler)” fix proposal (calendar-and-event) (read more)

  • Mobile review queue UI got a cleanup pass: misaligned header elements, spacing issues, and overly tall titles were raised—then awesomerobot followed up with a batch of improvements in core (review-queue) (read more)

bug / Support

  • SEO + localization bug: ?tl= pages canonicalized incorrectly: multilingual admins flagged that translated crawler pages couldn’t rank because the canonical pointed to the base language; nat agreed and shipped a fix via core PR (seo, content-localization) (read more)

  • Chat performance: Pitchfork timeouts and “silent threads”: a deep write-up suggested chat reply tracking could bloat over time and cause slow/unreliable loads; sam tested and reported a huge performance improvement via indexing/query changes (chat) (read more)

  • Mentions reachability check broke with uppercase usernames: thoka found case-sensitivity gaps that prevent “won’t notify” warnings in restricted categories; follow-up discussion led toward smaller, safer endpoint-level fixes (mentions) (read more)

#customization:plugin / #customization:theme-component

  • Communiteq Power Tools plugin: RGJ consolidated lots of “small but practical” admin enhancements into one maintained plugin—reducing the need for console access and bundling quality-of-life tweaks (#customization:plugin) (read more)

  • Serve Discourse content as Markdown: benword released a plugin that outputs “cooked → markdown” via Accept: text/markdown or .md URLs, aimed at cheaper LLM ingestion and simpler downstream processing (markdown, ai) (read more)

  • Combined login/signup button component: Lilly shipped a header-space saving theme component that merges auth buttons into one dropdown/modal—especially helpful on mobile where signup can be hard to spot (login, signup) (read more)

  • Show hidden categories component: pfaffman shared a theme component approach to “preview” hidden categories (via a “fake category” linking to group join/request), and compared it to existing options (#customization:theme-component) (read more)

General / #customization:extras (show-and-tell energy)

  • Domniq: a Discourse-native Android+iOS app preview: nicolsdennis showcased an app build with push notifications, moderation actions, and a polished UI—plus discussion of theme inspiration and chat styling (show-and-tell) (read more)

  • “I populated my forum with bots” sparked a philosophical debate: the experiment reframed bots as a personal briefing engine rather than simulated community, and the thread explored authenticity, value, and design aesthetics (show-and-tell) (read more)

  • Discourse Shortlink Router proposed a new way to share “support URLs” cleanly: swap your domain for a router domain to generate clickable admin/settings links, alongside a trust/privacy discussion (#customization:extras) (read more)


Activity by the @team Group

  • lindsey shipped multiple admin-facing improvements and updates this week: the April roadmap newsletter (Current Projects), more flexible category-level approvals (read more), bulk pin/unpin actions (read more), and Topic Voting enhancements (read more). She also continued the “make Discourse feel less technical in inboxes” push with simplified email subjects (read more) and documented new safeguards for permanent deletion settings becoming admin-visible (read more).

  • Falco advanced multilingual UX with localized emoji search (read more) and pointed translators back to the change when older support topics resurfaced (read more). He also kept driving embed-as-comments improvements and troubleshooting in the Tecnoblog embed thread (read more), helped isolate tracking/analytics issues via PR links (read more), and advised on Ghost integration behavior and expectations (read more). On AI translation operations, he clarified how switching LLMs affects translation progress (read more) and coached on improving AI triage examples/tool-call usage (read more).

  • nat focused on localization correctness and SEO: she confirmed that translated ?tl= pages should be self-canonical and shipped a fix quickly (read more), plus guided follow-up rollout questions (read more). She also clarified retry/backfill behavior and expectations in an AI translation reliability debate (read more), and closed the loop on multiple content-localization bugs with deployed fixes (read more; read more; read more). Separately, she announced richer Data Explorer charting to make community analytics more accessible (read more).

  • awesomerobot had a particularly UX-heavy week: he proposed a cleaner deletion flow to avoid giant mobile button labels (read more), addressed mobile event date styling inconsistency (read more), and pushed fixes for mobile review-queue alignment/spacing issues (read more). He also took on tricky mobile modal/viewport behavior with an “add user to list” modal fix attempt (read more) and explained why some “empty space” on topic lists is reserved for live presence UI (read more). On Meta’s redesign goals, he added important context about broadening Meta beyond developers in the homepage refresh thread (read more).

  • chapoi continued polishing the reactions/likes experience: he shared progress on making “display all reactions” better than the initial fix (read more) and clarified intended “new normal” behavior (reactions on the left) (read more). When users of likes-only sites objected to the new two-heart UI, he confirmed the team was working on restoring the single-like-button layout for reactions-disabled sites (read more). He also chimed in on Meta tag UX expectations around restricted tags (read more) and reacted to the AI-bot “show-and-tell” forum experiment with thoughtful framing (read more).

  • derek rolled out and supported the new Blocks-based Meta homepage, explaining design intent and tradeoffs (including surfacing educational content) (read more), and then quickly resolved a break caused by a core change interacting with the theme’s custom homepage model (read more).

  • zogstrip was active across multiple “small but sharp” bugfixes: he investigated restricted tags leaking into tag autocomplete and landed a core fix (read more), reviewed the “double-escaping underscores in image alt text” regression and opened a PR despite it being tricky (read more; read more), and handled draft deletion API inconsistencies with a fix proposal (read more). He also responded to mention-case-sensitivity issues by opting for safer incremental endpoint fixes (read more) and investigated a backups-page breadcrumb race condition (read more).

  • mcwumbly helped shape Meta’s culture/structure around “sharing builds” by proposing the show-and-tell convention (read more) and then encouraging spin-off topics for deeper feedback loops (read more). He also explored product-design space in a sensitive feature request about “post approval by future self / trusted friends,” including the idea of opt-in just-in-time AI feedback (read more), and apologized/clarified a Meta mishap where a topic became inaccessible due to category privacy changes (read more). Finally, he confirmed Discourse ID username changes are now available directly in user settings after recent work (read more).

  • supermathie tackled several technical/support edges: he highlighted how “private email” mode makes outgoing emails confusing when the topic link is removed (read more), participated in an older-but-active discussion about automating access to Discourse via external tools and clarified intent vs automation boundaries (read more), and dug into federated 2FA/MFA signaling limitations for Discourse ID (OAuth2 vs OIDC needs) (read more). He also confirmed an MCP permission fix for about.json access was merged (read more) and answered a self-hosting filesystem question with a pragmatic GeoIP symlink suggestion (read more).

  • pmusaraj stayed deep in Discourse AI and “diagnose + set expectations” support work: he explained token-cost implications and retry behavior in translation failures when upstream LLMs return errors (read more), and followed up with concrete improvements to category-targeting behavior and locale overrides in AI translation tooling (read more). He also encouraged contributions on Onebox behavior for Google Photos albums by tagging it pr-welcome (read more), and praised the “cooked-to-markdown” approach in the new Markdown export plugin thread (read more).


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Apr 26, 2026 → May 3, 2026

Key Stats

  • New posts: 480
  • New topics: 55

Top users (posts & likes received)

User Posts Likes
Lilly 47 120
RGJ 16 67
Falco 17 47
Moin 24 46
chapoi 8 43
lindsey 9 33
Canapin 10 30
Jonathan5 5 30
pfaffman 13 28
manuel 5 22

Interesting Topics

General

  • General Discourse’s “infinite scroll” sparked a nuanced debate about UI mechanics vs. algorithmic feeds, including accessibility/legal angles and whether “bottomlessness” is inherently addictive in a forum context. read more

  • General show-and-tell kirupa shared an update on resurrecting a quiet community with bots—now with full source code published for others to learn from. read more

#Announcements

  • #Announcements topic-voting badges New Topic Voting badges landed (Daydreamer → Visionary), plus thoughtful backfill/notification rules to avoid spamming users for ancient vote milestones. read more

  • #Announcements trust-levels Defaults for TL3 requirements are being adjusted via an upcoming change, aimed at making TL3 achievable on very active sites without admins needing to hand-tune caps. read more

  • #Announcements release-notes The April 2026 monthly release shipped, with the canonical changelog linked for the full list of improvements and fixes. read more

  • #Announcements calendar-and-event Calendar subscription UX got a real-world nudge: admins reported users grabbing the “wrong” subscription URL first, prompting discussion on re-ordering options to reduce confusion. read more

bug

  • bug data-explorer A Data Explorer UI regression limited report results to a cramped, scroll-boxed view—quickly confirmed and fixed for affected sites. read more

  • bug fixed Plugin/theme compilation logs got noisy and confusing due to missing ember-this-fallback helper modules; the underlying breakage was identified and patched (with a backport planned). read more

  • bug chat A “phantom ping spam” issue caused duplicate mention notifications from a single message; a fix was merged shortly after reports. read more

  • bug composer ai The new docked AI composer got early testing feedback: editing, quoting, sidebar interactions, and mobile scrolling issues were reported, triaged, and iterated on via follow-up fixes. read more

  • bug fixed After updating to 2026.4, some sites saw “Document tree depth limit exceeded” from crawler-related middleware paths; investigation led to targeted fixes. read more

ux

  • ux invites Invites UI oddities: users could create invites from other people’s profiles, which felt misleading because the invite still originates from the clicker—not the profile being viewed. read more

  • ux Relatedly, an Invite tab appearing on hidden profiles was flagged as a UI leak (even if it didn’t expose the hidden user’s data). read more

  • ux category-badge-styles Category badge text colors became unreadable for some themes due to foundation modernization CSS interactions; a component-level fix was proposed and PR’d. read more

  • ux Some users reported smaller mobile font sizes on certain hosted communities, with investigation pointing to the modernized Foundation theme being enabled on those instances. read more

  • ux tags mobile Long tags (or many tags) can get cut off at the screen edge without clear truncation affordances, raising questions about mobile readability and layout rules. read more

Support

  • Support The age requirement (13+) question turned into a practical guide on what differs between self-hosting and CDCK hosting, plus how compliance regimes (COPPA / UK OSA / EU DSA) shape obligations. read more

  • Support email A quick clarification on customizing digest/summary email subjects: admins can often do this via site texts like user_notifications.digest.subject_template. read more

  • Support Enabling Ruby YJIT via template led to a great debugging thread—ultimately boiling down to how environment variables were being checked (and how sudo can scrub env). read more

  • Support composer Admins asked how to hide category descriptions in the category chooser; a small CSS snippet solved it cleanly. read more

  • Support user-directory Partner-program “directories” came up again, with pointers to the built-in user directory and ways to present it as cards via theme components. read more

#customization:theme component / #customization:theme

  • #customization:theme component A “pagination-like” workaround arrived fast: Load More Button theme component intercepts auto-loading and requires manual input—useful for admins worried about “infinite scroll” semantics. read more

  • #customization:theme component Modern User Card work continues: restoring/modernizing the experimental usercard design surfaced deprecations and refactor needs as core evolves. read more

  • #customization:theme The new Verso theme dropped: lightweight, editorial-inspired styling with soft colors and both light/dark schemes. read more

development

  • development theme-guides blocks A new repo of Claude Code “skills” for Discourse theme + Blocks authoring was shared, including an example theme and patterns for layout frames/outlets. read more

  • development A candid “case study” write-up on learning plugin development while building a contact-form plugin—useful perspective for aspiring community builders who aren’t full-time engineers. read more

Marketplace

  • Marketplace A pre-launch community platform build request sparked candid scoping reality checks: “design-layer” tweaks, a custom member portal/profile, and auth-related flows likely exceed a tiny starter budget. read more

wordpress

blog

  • blog Discourse Discover: Hobbyist Edition highlighted communities built on deep, durable expertise—exactly the kind of “slow web” Discourse tends to enable. read more

Activity by the @team Group

  • Falco was everywhere this week: clarified hosting vs self-hosting responsibility in the age requirement thread (read more), fixed a duplicate-notification “ping spam” bug (read more), and untangled YJIT enablement confusion for self-hosters (read more). They also guided composer image resizing configuration—pointing out the difference between “threshold” and “target width” settings (read more), plus continued improvements around embedding Discourse as a full comment system (read more) and crawler middleware fixes (read more).

  • chapoi helped anchor two high-signal UX debates: the framing of “infinite scroll” vs algorithmic “infinite feeds” (read more) and the practical reality of footers/homepages in topic-list UIs (including a clear “not on the roadmap” answer on pagination) (read more). They also triaged a category badge contrast regression and committed to investigating root cause (read more).

  • lindsey shipped and enabled new Topic Voting badges, then explained how backfill notifications are intentionally throttled to avoid retroactive spam (read more). They also responded to calendar/event UX threads, including pointing to the newly added “All day event” checkbox (read more) and confirming .ics event descriptions now populate correctly (read more).

  • manuel published a practical, AI-assisted theming accelerator: theme + Blocks authoring skills and examples, plus follow-up notes on how Blocks shifts theme customization from “inject components” to “define layout frames.” (read more). They also reiterated that Meta’s branded theme isn’t intended for public reuse, while pointing builders to Blocks-based approaches to achieve similar outcomes (read more).

  • david posted the April 2026 release announcement pointing admins to the canonical changelog (read more) and jumped quickly on the ember-this-fallback deprecation crash report—shipping a fix and planning a backport (read more). They also clarified that OIDC group sync is now available and referenced the updated changelog/docs (read more).

  • pmusaraj released the Verso theme (editorial styling, light/dark, CSS-only) (read more) and diagnosed an iOS-only horizontal scrollbar issue affecting embedded comments/admin views—linking it to an in-flight fix (read more).

  • awesomerobot asked for sources and helped steer the “infinite scroll” thread toward evidence-based discussion (read more), and reinforced the practical constraints of hosting providers needing to follow regulations in jurisdictions they serve (read more).

  • martin announced upcoming default changes for TL3 promotion requirements, confirming how upcoming-change defaults interact with admin overrides and resets (read more).

  • HAWK provided an important compliance perspective: even self-hosted communities may have obligations (e.g., UK OSA) depending on where users can sign up from, and admins should plan accordingly (read more).

  • nat acknowledged and rapidly resolved the Data Explorer “5-row” layout regression, confirming when the fix landed for the reporter’s site (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period covered: 2026-05-03 → 2026-05-10

  • New posts: 500
  • New topics: 62

Top users (posts + likes received)

User Posts Likes
Lilly 56 95
Moin 38 88
Falco 16 28
pmusaraj 13 25
david 12 23
NateDhaliwal 23 21
nat 4 21
awesomerobot 7 20
merefield 11 26
Ed_S 8 15

Team leaderboard (posts + likes received)

Team user Posts Likes
Falco 16 28
pmusaraj 13 25
david 12 23
nat 4 21
awesomerobot 7 20
chapoi 9 13
HAWK 3 10
gabriel 1 10
martin 2 7
derek 3 6

Fast-moving themes this week (with receipts)

  • Localization & translation UX kept surfacing in different corners of the product — from “what Discourse looks like in Japanese” (read more) to guidance on choosing one translation approach in the Translator plugin thread (read more) and schema / SEO edge cases tied to translated content (read more).

  • Embedding & comment experiences continued to get attention, including smoother embedded login flows (read more) and practical setup gotchas like cross-domain cookie behavior (read more) plus clarifications on auto-creating topics for embedded comment threads (read more).

  • AI operational reliability was a recurring thread: token / context sizing confusion (read more), translations getting stuck with “thinking” models (read more), and translation failures due to structured output / reasoning interactions (read more).

  • Admin UX & reporting: “Site traffic” visibility issues turned out to hinge on hidden settings (read more), and crawler counts differing between reports were clarified as rollout-date related (read more).


Interesting Topics

blog

  • “What It’s Actually Like to Use Discourse in Another Language” sparked practical discussion about what doesn’t translate (plugin UI, theme strings), and how quickly missing theme strings can be patched once spotted (read more).

  • “The Digg Lesson: Why Moderation Infrastructure Matters” revisited a classic cautionary tale and prompted thoughtful reflections on the tools and systems needed for moderation at scale (read more).

#Announcements

  • Discourse Discover got “Hot Topics”: a new cross-community surfacing mechanism was introduced (starting in DiscourseHub iOS), raising interesting implications for discovery and ranking across the network (read more).

  • Embedding Discourse as a full comment system got another round of practical Q&A, including confirmation that embedded threads can auto-create their backing topics on first visit (read more).

development

  • A plugin author’s “case study” on breakages, deprecations, and documentation turned into a broader conversation about pace, stability, and how docs should be maintained (GitHub PRs vs wikis, deprecation timelines, and expectations) (read more).

  • bin/lint regressions for non-bundled plugins were quickly reported, reproduced, and fixed, highlighting how linting workflows differ across plugin setups (read more).

#contribute:feature

  • Chat as “first-class content”: a prototype “single activity view” concept proposed interleaving topics, subcategories, and chat channels by recency — raising big questions about information architecture and discoverability (read more).

  • Parent categories vs muted subcategories: a high-volume publishing/community hybrid use case asked for better ways to surface “hot” discussions without flooding Latest, while still enabling an aggregated view inside a parent category (read more).

  • Translated quotes losing context: a feature request argued that translation should preserve the helpful “quoted from topic/post” metadata and dropdown context currently present in non-translated quotes (read more).

ux

  • Impersonation auto-timeout UX: when experimental impersonation ends automatically, the UI can become misleading — prompting ideas like timers, MessageBus UI updates, and graceful “Stop impersonating” behavior (read more).

  • Blank /custom page after a theme switch on login: when a logged-out user’s theme has a custom homepage but the logged-in theme doesn’t, users can end up on an empty page — with suggestions to show an actionable “Take me home” fallback (read more).

  • The missing tag “info” button: a UX regression report noted that non-admin users can’t easily find tag descriptions anymore if the info affordance is gone (only admins see the wrench) (read more).

bug

  • Full name requirement vs Discourse ID: enabling full-name requirements didn’t behave as expected in a Discourse ID signup flow, and the issue was reproducible enough to be moved into bug for fixing (read more).

  • OpenID Connect group sync ejecting users from “unsynced” groups: a serious membership-change edge case was described where losing one OIDC group could remove users from unrelated groups, with a fix proposed quickly (read more).

  • Survey editing error after transferring topic ownership: editing someone else’s survey (after transfer) threw an error, and the plugin fix was shipped promptly (read more).

  • AI translation failures tied to “reasoning” models and structured outputs: debugging showed how reasoning tokens can consume completion budgets, and how model capability mismatches (e.g., json_schema support) can break translations (read more).

Support

  • Bootstrap mode removal (“legacy?”): the rationale, what got replaced (admin onboarding panel), and which old “bootstrap niceties” might deserve a comeback (directory refresh cadence, first-admin-as-mod, etc.) made for a very constructive postmortem (read more).

  • Discourse Splash (“blue dots”) can’t be disabled anymore: the removal of the disable setting was explained, including performance/SEO implications and a practical workaround via an animated SVG replacement (read more).

  • Excluding a category from Latest site-wide: admins compared “default muted categories” vs plugins and settings for suppressing noisy daily categories from the global feed (read more).

  • “Site traffic report” missing: the root cause was traced to the hidden use_legacy_pageviews setting — and how that hides the newer report UI entirely (read more).

#Self-hosting

  • “File too large” wasn’t actually a Discourse build issue: a Russian self-hosting thread ended up being a provider firewall / payload blocking problem (uploads + signups), with a detailed recovery and tuning checklist shared (read more).

  • Installing Discourse behind a non-routable public IP: the install “connection test” hurdle and HTTPS requirements came up again, with practical workarounds (skip test / dev install / tunnels / cert setup) (read more).

  • AWS Lightsail + Ubuntu upgrade planning: the thread compared in-place OS upgrades vs “spin up a new server, restore backup, swap DNS” migration playbooks (and TTL prep) (read more).

Marketplace

  • Safeguarding/reporting workflow needs: a charity asked for a specialized reporting button and emergency-protocol flows; replies clarified the boundary between theme vs plugin work and pointed to built-in flag tooling and components (read more).

#community-building Building

  • Welcoming new users (especially via Chat): the community explored ways to notify regular users about new signups and how chat/email behavior affects “welcome” flows, especially under hosted constraints (read more).

Activity by the @team Group

  • nat focused on localization and translation expectations — showcasing multilingual UX in the companion blog topic (read more) and advising that communities should pick one translation experience (preferring newer automatic translations over the older Translator UX) (read more).

  • gabriel announced the new Discover feature “Hot Topics”, outlining how the crawler and subject clustering works and where it’s launching first (DiscourseHub iOS) (read more).

  • pmusaraj did a deep dive on “Bootstrap mode is legacy?”, explaining why it was removed, what replaced it (admin onboarding panel), and which parts might be worth reintroducing or rethinking (read more). They also clarified TestFlight availability and app UI scope in the Discover Hot Topics announcement thread (read more), engaged with “chat as first-class content” experiments (read more), reproduced and escalated the Discourse ID / full-name requirement issue into bug (read more), and posted a fix for OIDC group-sync membership removal edge cases (read more).

  • awesomerobot confirmed the removal of the splash-screen disable setting (and why it matters for Core Web Vitals), plus shared an animated SVG approach to replace the dots entirely (read more). They also clarified why crawler values can show as 0 in the newer Site Traffic report for older date ranges (read more), shipped accessibility polish for decorative badge images (empty alt tags) (read more), and continued tightening invites/profile UX by hiding confusing invite UI in unsupported contexts (read more; read more).

  • Falco was active across embedding, AI, and self-hosting guidance — including cross-domain embed login behavior via same_site_cookies settings (read more), confirming embedded-comment topic auto-creation behavior (read more), and steering AI translation debugging away from reasoning-model pitfalls (read more; read more). They also linked to fixes for ongoing crawler “document tree depth” errors (read more), and recommended a safe “new-server restore + DNS swap” path for Lightsail/Ubuntu migrations (read more).

  • david engaged on developer experience and maintenance tradeoffs — balancing stability/customization expectations in the plugin-author case study thread (read more) and clarifying deprecation timelines (read more). They also fixed and merged the bin/lint regression impacting non-bundled plugins (read more), explained Markdown link boundary behavior (and the angle-bracket escape hatch) (read more), requested plugin inventories in a self-hosting memory/precompile investigation (read more), and clarified that tests-passed remains a working alias for latest (read more).

  • derek shipped UI polish and theme-related fixes — quickly resolving a missing theme translation string spotted in multilingual browsing (read more), confirming a merge for category badge color/contrast issues (read more), and acknowledging investigation into the “blank custom homepage after theme switch” login edge case (read more).

  • chapoi provided context and guidance around constraints and implementation details — adding perspective on why documentation can lag during rapid platform evolution in the plugin-author case study (read more), pointing theme authors to the correct plugin outlet for inserting navigation headers (read more), and troubleshooting notification/trigger ambiguity in a UI-notification investigation thread (read more).

  • martin took ownership of improving the impersonation timeout experience, outlining a two-part approach (UI updates when time expires + graceful stop behavior), with an openness to PR collaboration (read more; read more).

  • HAWK drove community strategy discussion via a moderation-history lens in the Digg retrospective (read more) and shared community-building advice focused on intrinsic motivation and Communities of Practice dynamics (read more).


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Last 7 days (2026-05-10 → 2026-05-17)

  • New posts: 457
  • New topics: 77

Top users (posts / likes received):

User Posts Likes
Lilly 53 130
markvanlan 6 58
Falco 9 54
lindsey 4 41
Moin 22 38
HAWK 9 31
martin 7 30
RGJ 8 29
NateDhaliwal 16 23
awesomerobot 9 21

Big launches worth catching up on: nested replies (read more), new client-side image optimizations (read more), and the new “Me too” signal for unsolved support topics (read more).


Interesting Topics

#Announcements

  • markvanlan introduced nested replies for communities that need fully-threaded conversations, plus an early look at single-thread view and admin controls (read more).

  • lindsey announced Solved improvements: a “Me too” button for unsolved topics in support categories that also subscribes members to be notified when a solution is accepted (read more).

  • Falco shipped new client-side image optimizations, including GIF → animated WebP conversion to reduce upload size and improve perceived performance (read more).

  • Bulk actions got a cleanup with Better bulk tag management: tag add/replace/remove now live in a single “Manage Tags” modal (read more).

  • martin shared a streamlined setup flow to create Events categories using the Calendar & Event plugin, continuing the “category setup initiative” (read more).

  • Horizon theme users got a default refresh: high-context topic cards are now enabled by default, exposing signals like Solved/Voting/Assign and richer previews (read more).

  • martin introduced granular pseudogroups for clearer permissions: separating anonymous vs logged_in_users to reduce confusion from @everyone in group-list site settings (read more).

bug

  • iOS PWA push notifications: subscription setup can silently fail when the service worker isn’t controlling the app yet, with a fix proposed and discussed in core (read more).

  • A Discourse Automation edge case: monthly recurring automations weren’t firing as expected, triggering a deep dive into how monthly recurrence is computed (read more).

  • Lightbox navigation in grid uploads: images show in the wrong order (e.g. 1, 3, 2, 4), with a fix tracked and linked (read more).

  • Group pages regression: users couldn’t see who is a group owner, even though the data was present — leading to a PR to render it again (read more).

  • Early nested replies growing pains: post admin wrench actions appear unusable in nested view, requiring switching back to flat mode as a workaround (read more).

  • Theme Creator issue: exporting themes on mobile results in a blank/white screen, while desktop behaves normally (read more).

  • Self-host update hiccup: an admin-panel update crash (plugin JS compile timeout) was recovered by rebuilding via ./launcher rebuild app (read more).

ux

  • Bookmark modal polish: a “superfluous” toggle button in the edit bookmark dialog was debated and then removed via PR (read more).

  • Category editor ergonomics: the Delete button being more prominent than Save in the simplified category UI was flagged as risky/confusing (read more).

  • Profile micro-layout: italicized text in a user’s bio can appear slightly cut off, likely due to overflow rules (read more).

  • Mobile admin UX: configuring Discourse Automation scripts on a phone viewport is cramped and difficult to use (read more).

  • Tracking behavior questions: admins noticed what seems like a change in how quickly topics lose their “NEW” status in lists after entering a topic (read more).

Support

  • Category reorg safety check: discussion clarified that renaming category name/slug is safe because URLs resolve via IDs, and older slugs redirect (read more).

  • Embedding into Salesforce: iframe + auth challenges led to practical guidance around cookie domain alignment and same_site_cookies adjustments (read more).

  • Hosted billing/upgrade confusion: a Free-plan admin couldn’t see the Starter upgrade option and staff investigated/mitigated (read more).

  • Security-minded self-hosting: questions about Nginx CVE-2026-42945 and whether Discourse base images/rules are affected prompted a team response (read more).

#Theme_component

  • A new theme component to make reply button labels clearer (and translatable), especially relevant with nested replies changing reply semantics (read more).

  • A small-but-useful theme component to hide “votes left” in Topic Voting UIs (especially when “unlimited” votes are emulated), plus discussion of new vote-limit settings (read more).


Activity by the @team Group

  • markvanlan led the rollout and Q&A for nested replies, covering why threading is an admin choice (not a per-user preference) and how enabling/disabling is reversible (read more, read more).

  • Falco shipped and explained the new client-side image optimizations pipeline (including GIF → animated WebP) (read more), and coordinated iOS PWA push fixes by requesting a service-worker update approach (read more). He also advised on iframe/embed login constraints for Salesforce deployments (read more) and responded to self-hosted update failures involving plugin build timeouts (read more).

  • lindsey announced and clarified the new “Me too” experience for unsolved support topics, and debated how the counter should behave (starting at 1 to include the OP) (read more, read more). She also introduced the consolidated bulk tag management modal for staff workflows (read more).

  • HAWK kept the Enterprise readiness discussion moving with multiple threads on scaling: breaking points as communities grow (read more), the risks of scaling too late vs too early (read more), early-stage signals that a strategy needs revisiting (read more), and a draft enterprise readiness checklist for feedback (read more).

  • martin expanded the “category type setup” initiative by making Events categories easier to configure (read more) and enabled richer discovery in Horizon by defaulting to high-context topic cards (read more). He also introduced clearer group semantics via new pseudogroups for anonymous vs logged-in users (read more), improved the Admin “upcoming changes” UI options for reporting features (read more), and clarified how optional “Preview” and “Feedback” links work for upcoming changes entries (read more).

  • awesomerobot clarified behavior of the new “Me too” button vs Boost (and why it’s tied to solution notifications) (read more), fixed mobile UI friction where Automation’s “last run” overlapped action buttons (read more), and addressed product papercuts like “default LLM label not updating” with a PR (read more). He also restored visibility of group owners for non-staff users (read more), discussed Topic Voting vote-limit settings in the context of hiding “votes left” (read more), and even cleaned up an official theme pattern choice after noting possible negative connotations (read more).

  • zogstrip delivered a steady stream of fixes: grid lightbox ordering (read more), a too-narrow mobile delete dialog in Edge (read more), multiple Chinese-language repros and fixes around editing/navigation flows (read more, read more), and support triage for an API 500 tied to silenced_till serialization (with a pointer to the relevant fix) (read more). He also helped route a recurring automation “monthly” bug investigation by flagging it for review (read more).

  • chapoi confirmed and explained UX bugs (including mobile modal issues and bookmark dialog quirks) (read more, read more), then followed through with a PR to remove an unnecessary bookmark toggle (read more). He also helped troubleshoot plugin-heavy self-host issues (badges/admin UI), repeatedly steering reports toward safe-mode isolation (read more), and flagged localization/translation quote concerns for further thought (read more).

  • nat responded quickly to AI/localization issues: addressing Norwegian locale detection mismatches and suggesting prompt-based workarounds while a core prompt update is planned (read more, read more). She also confirmed translation edge cases like “title translates but post doesn’t,” pointing to translation-length thresholds and follow-up adjustments (read more), and discussed how translated quotes can lose important metadata (especially in German) (read more).

  • sam handled both security-adjacent and engineering items: confirming Discourse’s default rewrite rules aren’t vulnerable while noting base image updates will ship for the Nginx CVE thread (read more), merging/fixing an MCP subfolder-install issue (read more), and checking in on an AI provider configuration edge case (Gemini “thinking budget”) (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

(Weekly window covered: May 17–24, 2026 — anchored by discussions like a self-hosted update crash report through to late-week support questions like invite notification noise.)


Key Stats

  • New posts: 447
  • New topics: 71

Top users (posts / likes received in the last 7 days):

A few threads that helped drive attention/likes this week (samples):

  • Discourse AI UX improvements landed in the spotlight with starred AI chats (read more) and a docked composer for bot conversations (read more).
  • Blog discussions sparked “open web” and “AI crawler” debates: web-first positioning (read more) and agent-ready Discourse (read more).
  • “Docs as reading-first” UI changes drew feedback via Doc Categories simple mode (read more).

Interesting Topics

blog

  • “Discourse is Agent Ready” (ai) prompted a wide-ranging debate on whether communities should welcome AI agents/crawlers or block them, including practical realities like scrapers ignoring robots.txt and the uncertain value of llms.txt. read more

  • “Discourse Will Never Block You From the Web” contrasted Discourse’s web stance with app-first lock-in trends, and kicked off discussion about author attribution/credit in blog companion topics. read more

#Announcements

  • Star common AI conversations (ai) shipped a small but meaningful workflow win: starred bot chats now float to the top of your AI conversation list (behind an upcoming-changes toggle). read more

  • A docked composer for AI bot conversations (composer, ai, ai-bot) introduced a “continuous chat” feel for bot topics, reducing the friction of repeatedly opening the composer. read more

  • Doc Categories: “simple mode” (doc-categories) reframed docs topics into a reading-first view where replies collapse behind a toggle, while still expanding automatically for direct-reply links. read more

  • Intermediate releases (May 19, 2026) collected critical security-fix release notes and version links for admins tracking update urgency. read more

  • Improved Events: flexible RSVPs for recurring events (calendar-and-event) added the ability to RSVP to just the next occurrence vs all future occurrences, preventing unwanted reminders and improving attendance clarity. read more

  • New post reply-count position for sites using Reactions (reactions) highlighted a layout change aimed at making the reactions row align more consistently across posts. read more

bug

  • Approval button on a user profile doesn’t work escalated a tricky approval/review-queue edge case: unapproved users not showing in review, phantom approval notifications, and even 500s when trying to approve from the admin UI. read more

  • Email “update available” message linked to broken release notes (missing the v prefix in the changelog URL), which produced a 404 until patched. read more

  • Tag Icons theme component: underscores turning into dashes broke icons inconsistently between sidebar vs topic/tag pages, likely due to slug handling changes. read more

  • Emoji autocomplete + special characters (like ü) showed a subtle but real UX break in both composer and chat, including console errors when inserting emoji after using “more…”. read more

  • Reactions bug: “+1” hover popover stuck loading turned out to be URL encoding (+ interpreted as a space) and was fixed quickly via a targeted patch. read more

  • NameError: ReactionsSerializerHelpers affected topic post-stream serialization on some installs using the bundled reactions plugin, and a PR was opened to address load order. read more

  • Nested replies + post voting = 500 error showed an incompatibility edge where nested serializers expected metadata that wasn’t present, producing undefined method 'post_number' for nil. read more

  • Syntax highlighting doesn’t copy/paste with color reliably became a deep dive into clipboard formats, browser differences (Firefox vs Chromium), and where formatting is lost (copy vs paste). read more

ux

  • Cross-cultural feedback on reply order (newest-first vs oldest-first) raised a thoughtful discoverability/usability issue for older users and different reading habits, plus a nested-replies wrinkle (timeline UX differs). read more

  • Undeleting a post doesn’t create a staff action log entry highlighted an audit gap: delete actions are logged, undelete topic is logged, but undelete post wasn’t—prompting a PR. read more

  • Suggested-edit banner overlaps edit history/date in wiki docs flagged a UI collision likely related to docs/simple-mode styling, reducing clarity around edit metadata. read more

Support

  • Free plan / pricing confusion: email-in + category types suddenly gated documented real-world friction as the hosted Free plan continues evolving, including expectations around feature matrices and UI upgrade prompts. read more

  • Minimum activity expectations on free hosted sites clarified the current policy: early inactivity notices at ~3 weeks, another at ~6 weeks, and decommissioning at ~7 weeks if there’s no real community activity. read more

  • Backup fails with PostgreSQL 18 (solved) walked through resolving a pg_dump client/server mismatch when Discourse runs the backup from a container using older pg tools than an external PG18 cluster. read more

#support:migration

  • phpBB → Discourse migration speed tuning (phpbb) collected practical import performance troubleshooting (I/O vs DB vs Redis), plus reminders about bulk importers and the cost of re-running large migrations. read more

#Community_Building

  • A native iOS+Android Discourse client app (show-and-tell) previewed a third-party native client concept (with caveats about plugin support and login/push limitations depending on hosting). read more

  • “New community” onboarding + boundaries on Meta mixed welcoming feedback with a reminder that Meta isn’t the right place for promotions/functional testing—and to use try.discourse.org for experiments. read more


Activity by the @team Group

  • awesomerobot engaged directly in the “agent-ready” AI crawler tradeoff discussion (including the limits of blocking scrapers) in this thread, then also pushed forward product polish by confirming configurability of the new Solved “Me too” text in this follow-up. They also recommended best practice spam handling (“delete and block”) in this feature request, and clarified free-tier activity thresholds in this support answer.

  • Falco helped diagnose self-hosted update failures and resource constraints (especially 1 vCPU installs with non-core plugins) in Crash after attempting to update, and continued to iterate on nested replies UX constraints (timeline availability, revert decisions, and design gaps) in reply-order feedback. Falco also routed a nested-replies read-state 404 report to the right place in this bug thread, and pointed to in-progress fixes for nested-mode admin actions in this nested bug report.

  • sam shipped AI usability improvements with the starred AI conversations announcement in this topic, confirmed and scoped a floating-chat history/back-button issue in this chat bug, and responded to a flagging crash report by encouraging a PR (and confirming it’s on the team’s radar) in this bug topic.

  • david published the week’s intermediate release pointers for critical fixes in the release notes topic, and weighed in on how prebuilt assets should behave during web updates (and why certain plugin+hardware combos still struggle) in this update-crash thread. David also noted that an older “viewport-based mobile mode” toggle is overdue for removal (and can cause bugs if turned off) in this dev-news follow-up.

  • keegan introduced the docked composer experience for AI bot conversations (behind an upcoming-changes flag) in this announcement.

  • ducks published the companion topic for the “web-first” positioning piece in Discourse Will Never Block You From the Web.

  • saquetim rolled out simple mode for Doc Categories (collapsing replies behind a toggle while keeping deep links functional) in this announcement.

  • zogstrip was everywhere in tactical bugfix follow-ups: they pointed to an imminent improvement for starred-chat back behavior in this chat bug, confirmed a fast fix for the “+1” reaction hover URL encoding problem in this reactions report, and linked fixes/PRs for multiple long-running papercuts—like Googlebot pagination 404s in this support thread, flagged-post restoration improvements in this bug, and a settings-description UX link improvement in this UX topic. They also tried (and couldn’t) reproduce a mobile reactions modal issue, asking for better steps in this bug topic.

  • HAWK responded to enterprise scaling “breaking points” by confirming active work on calendar/events and roadmap intent for video conferencing in this enterprise discussion. They also gave a clear overview of watched-words capabilities (and pointed to the reference guide) in this moderation support topic, and explained why the hosted Free plan is being de-emphasized while product-market fit is still being tested in this pricing/free-plan thread.

  • Danielle posted the replay and recap for an MCP + Data Explorer office hours session (including practical examples of “ask your community data like a teammate”) in this Events post.


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period covered: 2026-05-24 → 2026-05-31

  • New posts: 440
  • New topics: 60

Top users (posts + likes received)

User Posts Likes
Lilly 53 72
david 4 41
Moin 23 34
sam 8 33
merefield 15 27
chapoi 13 25
awesomerobot 4 24
NateDhaliwal 14 23
darkpixlz 15 21
martin 3 19

A lot of the week’s energy clustered around core UX rollouts, nested replies stability, and admin/self-host troubleshooting—with several threads tying directly into new/ongoing platform changes like default reactions (read more) and “small action” notification noise (read more).


Interesting Topics

#announcements

  • Discourse core is getting a new JavaScript build system, moving from ember-cli/webpack to rolldown (Rust-based, aligned with Vite), promising ~80% faster dev builds while keeping production installs unaffected thanks to precompiled assets (read more). Related background: precompiled assets for self-hosters (read more).

  • Reactions are being enabled by default for all new and existing sites via an “upcoming change” rollout process, with martin explaining why defaults are shifting and how opt-outs are handled (read more). Canonical feature context: Discourse Reactions plugin thread (read more).

  • “Small action” posts (auto-close notices, assignment notices, etc.) are being excluded from Watched/Tracked lists to reduce admin notification spam, and this is not optional per implementation constraints (read more).

  • The Calendar and Events plugin got a much smoother event creation flow directly inside the composer (interactive editor in rich-text and preview in markdown), lowering the friction for communities who run events (read more). The canonical plugin topic: Calendar and Events (read more).

  • The May 2026 monthly release landed (v2026.05) with full changelog pointers for anyone tracking upgrades across self-hosted and hosted installs (read more).

  • Discourse published “Current Projects – May 2026”, including progress notes across bundled plugins and initiatives (notably: topic voting improvements and calendar/events setup UX) (read more).

bug

  • A classic “phantom unread” problem surfaced: users saw Unread (14) while /unread was empty. Team acknowledged the bug and work-in-progress fixes, while a practical rails/SQL workaround to clear unread state site-wide was shared (with the important caveat that it clears legit unreads too) (read more).

  • Nested replies kept surfacing edge cases: suggested-topic links to nested routes 404’d (and could leave the header in a weird state). A core fix landed, with follow-up discussion on redirects and unread indicators in nested topics (read more).

  • Form Templates users hit a subtle one: tag-chooser fields broke when tag names had mixed case. zogstrip reproduced and shipped a fix PR quickly, turning a confusing UX issue into a concrete rule of thumb: normalize tag naming (read more).

  • A UX papercut became a backend validation improvement: creating a request-only group without an owner produced an unhelpful “FAILED”. Investigation noted the split-form complexity and legacy Ember patterns; a PR restored a descriptive error message (read more).

  • A tricky upgrade snag: db:seed_fu failed due to a name collision with anonymous while creating new system groups. The thread highlights import edge-cases (usernames/groups named anonymous) and raises naming/compat concerns around automatic groups (read more).

  • French-language instances exposed a typographer pitfall: certain apostrophe/quote substitutions turned ' into > due to quotation mark settings. Disabling enable_markdown_typographer resolved it, and the team flagged “quick wins” to improve the experience (read more).

#announcements nested-replies

  • Nested replies testing continues to be contentious: one operator reported production breakage (route changes, broken notification links, theme incompatibilities, and mobile layout issues) and recommended stronger warnings before enabling, while others explored testing strategies and expectations management (read more).

  • A separate nested replies compatibility thread tackled post voting + nested replies conflicts; the short-term direction leaned toward explicitly disabling post-voting behavior in nested contexts and considering a future “vote” feature within nested replies itself (read more).

#contribute:feature

  • Mobile onboarding friction got attention: Discourse on mobile shows “Log In” prominently but hides “Sign Up” behind the flow, leading to user confusion. The thread explores UI tradeoffs, alternative components, and PR work to improve discoverability without crowding the header (read more). Related component idea: combined auth button (read more).

  • A security-vs-operability discussion: when “edit email after signup” is disabled, admins also lose the ability to edit email via UI. The proposal is more granular control (admins-only vs users-only), likely with “sudo mode” friction like password/2FA confirmation and strong audit logging (read more).

  • Discourse AI feedback: adding webhooks/event support for AI artifact updates (or disabling sandboxing) was raised, and team pointed toward revisiting this once “Workflows” (a new Automation approach) lands (read more).

Support

  • Self-hosters compared VPS vendors and SMTP realities: a “Vultr vs DO” thread quickly turned into a reminder that email deliverability is usually about provider port policies and correct config, not the marketplace image—and that the official install path is often faster than debugging an unsupported marketplace setup (read more). Related SMTP troubleshooting and YAML gotchas (curly quotes!) showed up in “If local logins are disabled” (read more) and the canonical email troubleshooting guide (read more).

  • A practical storage problem: upgrades failed due to disk pressure and large container layers. The thread includes concrete cleanup guidance (./launcher cleanup) plus discussion about what base images are, why old layers accumulate, and how to reclaim space safely (read more).

  • “Failed to automatically register with Discourse ID” blocked an install when email was skipped, and the root cause turned out to be HTTPS redirect URI requirements; the workaround was to create an admin via CLI and enable force_https, then finish setup (read more).

  • Admins discovered an impersonation guardrail: a hidden setting experimental_impersonation_time_limit_minutes (default 15) exists, changeable via rails console (or via rebuild if placed in config, though that’s clunkier) (read more).

  • A “need to create chat channels via API” question was answered with the relevant endpoint (POST /chat/api/channels) plus a working parameter example—useful for platforms provisioning hundreds of communities programmatically (read more).

  • Site feedback spotted that a long-standing “creating bug reports” guide now contains dead category links after category restructuring; the suggested fix is to use category URLs with IDs so future moves don’t break references (read more). The referenced guide: “Creating bug reports for Discourse on Meta” (read more).

#customization:theme-component / #community-building:praise

  • A new theme component aims to reduce admin cognitive load by auto-dismissing certain notification types in the user menu—especially handy for sites with lots of invites or system notices (read more).

  • A thoughtful praise post argued that bundling popular plugins (disabled-by-default but preinstalled) is actually a big win: admins can enable features without disruptive rebuilds during live operations (read more).


Activity by the @team Group

  • david kicked off a major dev-news item introducing a new JS build system for Discourse core (rolldown + native ES modules) with big dev-mode performance gains while keeping production stable (read more). He also suggested debugging Discourse-incompatible browsers by checking the browser console for failed feature detections (read more), and updated docs on the new d-compat/* strategy for plugin/theme compatibility pinning (read more).

  • sam shipped/announced a user-notification quality-of-life change: small actions no longer count as tracked/watched activity, reducing “administrivia pings” during bulk closes and timers (read more). He also connected phantom unread reports to the small-action change rollout path (read more), and pointed self-host troubleshooters toward specific commit sets for a middleware guard fix (read more).

  • chapoi stayed active across UX and support threads: acknowledging the phantom unread bug and confirming the team is working on it (read more); offering a detailed mental-model argument against per-user nested/linear view preferences (read more); pointing to practical options for structured layouts (and clarifying when suggestions apply to topic lists vs post bodies) (read more); and helping an integrator find the chat channel creation API endpoint (read more).

  • awesomerobot announced the improved event creation UX in the Calendar and Events plugin, embedding an interactive event editor directly in the composer (read more). They also helped with accessibility troubleshooting for JAWS + Discourse keyboard shortcuts (explaining how screen readers can intercept keystrokes) (read more), and weighed in on the mobile sign-up discoverability discussion with broader UX patterns seen across popular sites (read more).

  • martin announced the upcoming rollout to enable Discourse Reactions by default, explaining both the product rationale and how “upcoming changes” make low-risk rollouts more feasible than in the past (read more).

  • rishabh published the May “Current Projects” update, summarizing work across plugins and ongoing initiatives (read more), and shared a significant usability win: GitHub oneboxes now show PR status inline (read more).

  • Falco contributed on several technical fronts: flagging nested-route errors for investigation and routing to the right owner (read more); discussing future event/webhook options for Discourse AI artifacts (and tying it to upcoming Workflows) (read more); clarifying client-side image optimization behaviors and tradeoffs around adding more admin knobs (read more); and advising on embedding Discourse comments as part of a broader integration approach (read more).

  • markvanlan continued iterating on nested replies: posting fixes for broken nested links and redirect behavior expectations (read more), and outlining a direction for dealing with incompatibilities like post voting by explicitly disabling it in nested contexts (with longer-term thoughts about integrated voting in nested replies) (read more).

  • zogstrip delivered multiple fast-turn fixes: resolving the Form Templates tag-group selector mixed-case bug (read more), shipping a fix for “who voted” visibility in closed topic voting contexts (read more), and iterating on approval/notification correctness edge cases (read more).

  • loic posted the official pointer for the May 2026 monthly release, directing admins to the full changelog (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period covered: 2026-05-31 → 2026-06-07 (a week that saw a new composer alpha land in “Post Type” composer actions and continued iteration on nested replies in the nested replies announcement thread).

  • Total new posts: 356
  • Total new topics: 54

Top users (posts / likes received this week):

User Posts Likes
jordan.vidrine 7 35
chapoi 25 31
NateDhaliwal 18 24
Lilly 16 24
haydenjames 10 23
Moin 9 20
pmusaraj 4 20
RGJ 10 17
sam 7 17
awesomerobot 15 16

Interesting Topics

#Announcements

  • Composer redesign (alpha): unified “Post Type” actions dropdown (#Announcements) — jordan.vidrine introduced a new composer actions menu behind enable_new_composer_actions, including moving whisper/no-bump/unlist toggles into the same dropdown for less “mode switching whiplash.” See details.

  • Nested replies: SEO, controls, and layout tradeoffs (#Announcements, nested-replies) — questions ranged from crawler behavior and canonical URLs to whether “view as flat” should remain available. markvanlan confirmed “view as flat” was removed after internal testing (read more).

  • “Small post actions” change (and its knock-on effects) (#Announcements) — the change to suppress “small actions” continues to surface implications for what gets tracked/watched; sam confirmed it applies broadly (including unlist/list actions) in the announcements thread (read more).

  • Events UX gets simpler… but mobile pain points remain (#Announcements, calendar-and-events) — “easier than ever to create events” is being tested hard in the wild, with reports about mobile discoverability and long descriptions in the events announcement topic (read more).

  • Enterprise: first iteration of a Discourse AI getting-started guide (#Enterprise) — fsasaki shared a structured, toggle-by-toggle guide to Discourse AI for enterprise stakeholders (read more).


bug

  • Unread count says “Unread (14)” but the unread list is empty (bug) — a regression affecting the /unread experience (and sometimes showing phantom or missing unreads) was triaged, linked to the “small actions” tracking change, and fixed via a commit referenced by sam (read more). Related report: “Unread” tab is not listing all thread with unread messages.

  • Nested replies + Horizon: old replies “stick” when navigating via related topics (bug, nested-replies) — Andry_Osminin reported intermittent UI state leakage that only cleared after a full reload; the diagnosis pointed to “instant navigation” not resetting state, and markvanlan flagged an upcoming PR to address it (read more).

  • Topic cards: “likes” broke after a linting update (bug, topic-cards) — RGJ spotted that refactors removed/changed getters but left code calling them, breaking likes; a PR was merged quickly (read more).

  • AI Helper suggests tags that aren’t allowed in a category (bug, ai) — AI-assisted tag suggestions ignored category/tag-group restrictions and allowed selecting invalid tags (then failing on submit). zogstrip shipped a fix via PR (read more).

  • Chat thumbnails bypass s3_cdn_url and leak raw bucket URLs (bug, cdn, chat) — Lilly traced broken thumbnails (notably with Cloudflare R2) to serializers not applying the CDN URL; sam rebaked content on Meta while the fix discussion continued (read more). Related R2 migration pain surfaced again in Cloudflare R2 image URL display issue.

  • Passkey login: “security key is not owned by the user” (bug, passkey) — a cross-site pattern (Meta + several other communities) suggested either a Discourse regression or an upstream platform change; pmusaraj investigated but couldn’t reproduce reliably and asked for more Windows-based data points (read more).

  • Upgrade failure: db:seed_fu group/user namespace conflict (bug) — name collisions in the shared user/group namespace caused upgrade failures; martin produced and merged a fix (and clarified the underlying conflict pattern) in the original report (read more).


Support

  • Odd bot signup/spam “attacks”: what to do when spam is at the account-creation layer (Support) — admins compared patterns (fake custom fields, “FirstLast1234” usernames), mitigation tactics (approve TL0, Data Explorer queries, Cloudflare rules), and tradeoffs of IP blocking vs VPN collateral damage. The thread includes a call for better built-in automation (read more). Helpful adjacent resources mentioned in-thread: the official hCaptcha plugin, a request for Cloudflare Turnstile support, spam-response playbooks like immediate actions during a spam attack and tips for preventing spam, and Cloudflare guidance in best practices.

  • “Registration challenge” without plugins on free hosting (Support, spam, signup) — on constrained plans, the discussion focused on what can still be done (must-approve-users, AI spam detection, and operational triage) even when you can’t install additional plugins (read more).

  • How to approximate Meta’s design on your own forum (Support) — the “how did Meta do that?” question brought together the custom homepage feature, the Blocks API work, and practical theming components (including hiding the sidebar by default) (read more). Related reading: Using the new custom homepage feature and the broader Meta theme rebuild notes in Rebuilding the Meta Branded theme.

  • Sidebar UX: “nest” group links under a collapsible parent (Support, sidebar) — while true nesting/collapsing isn’t available, the thread converged on restructuring via built-in custom sections, which solved the immediate need (read more).

  • Why can’t I install plugins “locally” in /var/discourse/plugins on production? (#Self-hosting) — the answer: it’s not blocked so much as “not how the production container build is wired,” so use app.yml (or spin up a dev environment and restore a backup locally). See the discussion (read more) and the related docs for installing plugins on a self-hosted site plus creating/restoring backups.

  • Webhooks suddenly firing ~24 minutes late (user_added_to_group) (Support, webhooks) — the key debugging path was Sidekiq latency/queue pressure (especially the low queue), with guidance to inspect /sidekiq for live queue health (read more).

  • Discourse install: port 443 “not accessible” connection test (and when to skip it) (Support) — a tricky install experience ended up using the --skip-connection-test flag once DNS/ports were verified; the thread also turned into a mini runbook for Virtualmin environments (read more). Related install edge case: skip connection test does not work.

  • Homepage topic links suddenly got smaller (Foundation modernization side-effects) (Support) — admins traced unexpected font-size changes to the Modernize Foundation theme upcoming change and toggled it off while awaiting further refinement (read more).


ux

  • Review queue cognitive trap: “Yes” sometimes means “remove spam,” sometimes means “approve” (ux, review-queue) — a UX consistency report highlighted muscle-memory risk when processing large queues; discussion centered on reframing prompts so “Yes” consistently confirms a problem (read more).

  • Theme import: “branch: main” is a placeholder (not a default), leading to wrong branch pulls (ux, fixed) — an admin-side form subtlety caused real-world update confusion; chapoi shipped a copy/UX fix after clarifying the intended “nil means auto d-compat branch” behavior (read more).

  • “New Topic” button still appears where users can’t create topics (and why that’s controversial) (ux) — a debate between reducing friction (“let users open composer and post elsewhere”) and avoiding confusion (“don’t show a primary CTA that can’t complete”). The thread also surfaced workarounds and a newly added hidden setting restoring old behavior (read more).


#customization:theme


Activity by the @team Group


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period covered: 2026-06-07 → 2026-06-14

  • New posts: 416
  • New topics: 57

Top users (posts + likes received this week)

User Posts Likes
Moin 43 73
lindsey 8 50
awesomerobot 25 41
martin 9 32
HAWK 7 29
chapoi 16 29
davidb 5 20
Falco 5 18
nat 6 17
nathank 13 16

Interesting Topics

#Announcements

  • A preview of the redesigned admin dashboard (dashboard, #Announcements): lindsey shared an early look at a more modular dashboard (highlights, pin-able reports/Data Explorer, traffic, engagement), and the thread quickly turned into a discussion of which KPIs should be customizable per community (e.g. internal vs public support use-cases). read more

  • Introducing the unified new view for the topic list (#Announcements): martin announced “unified new” as an upcoming default, combining the mental model of New vs Unread into clearer subtabs (Topics / Replies / All). awesomerobot clarified default behaviors and why this should be easier to explain to members. read more

  • GIFs are moving to Discourse core! (#Announcements): davidb announced the GIF picker is moving from a theme component into core (now via Klipy), with migration notes for hosted/self-hosted and follow-ups around edge cases like domain download restrictions and translation overrides. read more

  • Livestream is now part of the Events plugin (calendar-and-events, discourse-livestream, #Announcements): lindsey shared that livestream functionality has been folded into the Events plugin (single system, migrated settings, and plan availability on hosted tiers). read more

  • Boosts testing on Meta paused (for now) (#Announcements): martin confirmed Boosts have been disabled on Meta temporarily while the team considers how boosts/likes/reactions might evolve into a more cohesive system later. read more

  • Solved improvements keep evolving (solved, #Announcements): lindsey posted updates making the “I’m experiencing this issue too” interaction configurable per-category and easier to relabel in category settings. read more

bug

  • Ads need a lot of space on topics with nested replies (nested-replies, bug): Moin reported that topic-list ads become visually intrusive (and sometimes broken) inside nested replies layouts; Falco tracked it to the custom topic list ads component and shipped fixes in component PRs. read more

  • Localization bug in recurring events (calendar-and-events, bug): a missing %{weekday} interpolation caused recurring events to render as “Every [missing…]”. awesomerobot pointed to a recent fix and the reporter confirmed an update resolved it. read more

  • Regression: PDFs download on click instead of opening (pdf-previews, bug): nathank reported PDFs attempting download rather than opening in a new tab when previews are enabled; zogstrip linked a fix for inconsistent display behavior between S3 vs local storage. read more

  • Trouble searching user custom fields in the directory (bug): pfaffman reported /u directory search didn’t respect custom fields even though global search did; zogstrip made the code paths consistent via a core fix. read more

  • SVG badge icons not displaying after import (badges, bug): AkarinLiu hit a Font Awesome SVG edge case (no dimensions → renders at 0px). awesomerobot added a Discourse-side fix so these icons display correctly. read more

  • Right Sidebar Blocks: Tags block conflicts with tag dropdowns (right-sidebar-blocks, bug): a repro on try.discourse led to a plugin-side fix; martin linked the PR resolving the behavior. read more

  • Try Discourse demo sending “account no longer on hold” PMs (Support): users noticed repeated automated PMs and an “empty” demo state; david linked the fix and noted it was deployed to try.discourse.com. read more

ux

  • Delete category button is more prominent than Save (categories, ux): chapoi suggested moving “Delete category” into a clearer “Danger zone” and restricting it to an appropriate tab; lindsey agreed the placement felt odd across every tab. read more

  • Nested replies: root post is too narrow on mobile (nested-replies, Support): feedback that the OP becomes cramped when rendered with the same left-avatar indentation as replies; Falco agreed the author block should shift above (flat-topic style) for readability. read more

  • Tags & Tag Groups deserve a more visible place in the admin menu (tags, tag-groups, ux): RGJ argued that tags/tag groups feel “accidentally discoverable” and should be surfaced more directly in the new admin navigation under Content. read more

  • Why does the Reply button have a background transition effect? (ux): a deep-dive into a subtle hover animation inconsistency; awesomerobot explained it’s a legacy behavior intended to draw attention to the hovered reply control and is now “up for debate.” read more

  • Category “new content” indicators (“pastille”) (Support): gilles asked why categories don’t always show a “new/unread” marker on category-focused homepages; awesomerobot noted it exists in some UI surfaces (like the sidebar) but not others. read more

Support

  • Hide admin user from user-directory and top contributors (user-directory, Support): a nuanced thread on why /u?exclude_groups=admins behaves differently for anon users when group membership is hidden; david explained the security model tradeoff, and the OP shared CSS workarounds to hide specific rows for anon. read more

  • AI Translation setting changed: “Translatable categories” → “Excluded categories” (ai, dynaloc, Support): Sara_Carmona_y_Lladó asked how scope and costs are determined; Moin explained the migration logic and suggested Data Explorer queries to audit translation volume. read more

  • Secondary Email Address missing (Support): JDParker couldn’t add a second email; the resolution was that email_editable (or auth overrides) can hide the UI entirely. read more

  • Change “click here” in email digest footer (Support): newbit1337 couldn’t find the string; awesomerobot pointed to the specific i18n key (user_notifications.digest.click_here) and where it is composed into the final digest template. read more

  • TooManyRecipientsError when emailing a group alias (email, Support): pHneutre found inbound mail rejected when a group alias expands beyond default recipient limits; chapoi connected it to anti-abuse settings and the relevant site setting threshold. read more

  • Free hosted site: can’t access admin functions (free-plan, Support): whitelabel was logged into the “wrong” Discourse ID session; awesomerobot advised logging out/in via id.discourse.com to regain the admin account. read more

development

  • Matrix protocol bridge for chat (revived with an LLM-built prototype) (chat, #contribute:feature): pmusaraj shared a proof-of-concept Discourse↔Matrix chat bridge; testing quickly surfaced TL0 chat access defaults and federation/room visibility gotchas. read more

  • Extending chat message blocks (plugin API request) (chat, plugin-api, development): Anton_Akhmerov proposed making chat “blocks” extensible so plugins can register new structured card types (instead of hacking internals or relying on Markdown). read more

  • AI Tools Test Runner: HTTP/HTTPS port behavior (rest-api, ai, Support): Falco clarified current behavior: only HTTP→80 stays HTTP; other ports default to HTTPS, which can surprise when testing http URLs. read more

  • Theme import UX: misleading “branch” input (ux): david added clarity so admins can see both the installed branch and the resolved target branch during theme updates, reducing d-compat vs main confusion. read more

#customization:theme component / #customization:plugin ecosystem

  • Avatar frame plugin effort (frames like Discord Nitro) (Support): an old “where can I find avatar frames?” question turned into a new plugin share—asa built and published a WIP avatar frames plugin and offered to share it with the community. read more

  • Modernizing the Foundation theme continues (#Announcements): Moin posted a dense set of UI consistency observations (borders, spacing, truncation). jordan.vidrine confirmed what’s intentional and linked a PR that will address the remaining items. read more


Activity by the @team Group

lindsey

  • Shared an early, highly experimental preview of the redesigned dashboard and collected feedback on which admin KPIs should be configurable per community (admin dashboard preview, plus follow-up questions in post 4).

  • Confirmed livestream is now integrated into Events (with hosted plan notes and migration behavior) in the formal announcement (livestream merge).

  • Backed a UX improvement proposal to move destructive category actions into a clearer “Danger zone” section (delete category UX).

  • Acknowledged and triaged a recurring-events RSVP behavior report for follow-up (recurring RSVP reset discussion).

  • Posted incremental updates to “Solved improvements” so admins can tune the “me too” indicator per category (Solved improvements update).

awesomerobot

  • Helped explain the reasoning and definitions behind “unified new” and the New / Unread / Unseen confusion, including how the new labels aim to reduce cognitive load (unified new explanation).

  • Shipped multiple quick UX/bugfix responses across core and official components, including:

  • Clarified gaps in Events reminder behavior and discussed what “email reminders” could look like if aligned with notification-email preferences (event reminder email feature discussion).

  • Flagged that discobot’s answer about “censored usernames” was incorrect, clarifying that watched/blocked/censored words do not apply to usernames and reserved usernames is the current option (with admin exemptions) (censoring names clarification).

  • Investigated odd behavior on try.discourse daily restores after reports of repeated “account no longer on hold” PMs (try.discourse restore suspicion).

  • Provided structured troubleshooting guidance for a “notifications not happening” report and emphasized updating a very out-of-date install as a likely fix path (notifications troubleshooting).

  • Helped a free hosted customer regain admin access by re-authing via Discourse ID (free plan admin access).

martin

  • Announced “unified new” becoming the default topic-list behavior via Upcoming Changes, including screenshots and rollout mechanics (unified new announcement).

  • Disabled Boosts on Meta temporarily and set expectations that it will return after more cohesive design work across likes/reactions/boosts (Boosts paused, and later reassurance in post 90).

  • Fixed an issue in the Right Sidebar Blocks plugin by linking and merging the relevant PR (sidebar tags block fix).

  • Confirmed an “Upcoming Changes notification for a hidden change” is a bug and agreed it should be fixed (upcoming changes notification bug).

  • Redirected “when will Foundation update everywhere?” support traffic to the canonical modernization thread and described the lifecycle from Upcoming Change → stable → permanent (Foundation rollout guidance).

  • Shared implementation nuance around group permissions in themes/components, noting currentUser?.groups is not reliable because it only includes visible groups (group visibility nuance).

chapoi

  • Helped users navigate multiple UX and admin-side regressions/fixes, including:

    • confirming the GIF button placement changes (moved into the regular toolbar) and linking users to the correct reference (GIF toolbar clarification),
    • proposing a safer placement for “Delete category” (Danger zone, fewer tabs) (delete category UX proposal),
    • providing the fix PR for an events sidebar label regression (“New Topic” vs “New Event”) in Horizon (events sidebar label fix).
  • Assisted with admin automation and email guardrails by diagnosing why group aliases can trigger TooManyRecipients rejections and pointing to the site setting involved (TooManyRecipients deep dive).

  • Supplied a working SQL pattern to tie SQL-triggered badge grants to a specific topic/post (post_id), solving the “link badge to a topic id” question (badge SQL pattern).

  • Nudged a Data Explorer UI issue report toward the simplest first step: update to latest after a recent plugin refresh (data explorer update suggestion).

  • Linked a completed fix for long personal-message titles overflowing in the composer UI (PM title overflow fix).

HAWK

  • Started a thoughtful discussion on enterprise community ownership models—whether community should sit under Marketing/Support/Product or be autonomous—and engaged replies about mandate, boundaries, and member-first decision-making (community ownership models).

  • Explained the strategic rationale behind Discourse’s free plan as a freemium acquisition tier that often behaves like an indefinite trial and a pathway to retention (free plan rationale).

  • Answered “what’s the point of primaries?” by quoting canonical purposes (styling, flair, identity, default title) and linking to a reference explanation (primary groups purpose).

  • Noted weekend timing expectations on a nested replies support thread (“you caught us on the weekend”) while the report awaited deeper technical follow-up (nested replies support timing).

  • Teased upcoming “Workflows” as a major leap for automations (triggers/actions/flows) in a community building automation discussion (workflow hint).

davidb

  • Announced the migration of GIF support into core using Klipy, with clear instructions for hosted vs self-hosted customers and a roadmap for improving migration scripts over the next couple weeks (GIFs to core announcement).

  • Followed up on migration details like mapping provider settings (Giphy → Klipy) and potential updates to handle disabled_image_download_domains and translation overrides (migration follow-up).

Falco

  • Responded to nested-replies ad layout issues and documented why prior attempts didn’t fully solve it, then provided the concrete PR links that address spacing/placement in the correct component (ads + nested replies).

  • Confirmed content localization language switching requires cookie-based locale selection (per the docs) when a user reported the switcher “does nothing” (content localization cookie requirement).

  • Agreed the nested replies mobile OP layout should be adjusted so author info moves above (not beside) the opening post (OP width on mobile).

  • Clarified current limitations/behavior in the AI Tools Test Runner around protocol/port assumptions (HTTP only on port 80; others default to HTTPS) (AI tools runner behavior).

nat

  • Engaged in the dashboard redesign thread (and GIF-based levity) while signaling that KPI customization is on the horizon but not immediate (dashboard thread participation).

  • Confirmed improvements to AI-generated tag translations on Meta after a thorough report, noting that the provided list made it straightforward to fix quickly (tag translation improvements).

  • Acknowledged a tricky content-localization edge case where interface language and translated content language can drift across tabs, and indicated it may be a quick fix (language mismatch report).

  • Confirmed the team is looking into broken category links/mentions resulting from category/subcategory structure changes and rebakes (category link breakage acknowledgement).

  • Confirmed a bug report about translated post links not using the translated language is on the team’s radar (translated links bug).

david

  • Helped clarify the security model behind hiding group membership and why anon users can’t reliably use exclude_groups without leaking membership data—while also acknowledging configuration realities (open registration vs invite-only) (exclude_groups explanation).

  • Delivered the fix that stopped try.discourse from spamming “account no longer on hold” PMs and confirmed deployment (try.discourse fix + deploy note).

  • Investigated CI bootability test failures with SKIP_DB_AND_REDIS and worked through reproduction attempts and environment knobs with reporters (CI bootability troubleshooting).

  • Improved theme import UX by adding visibility into what branch is truly installed vs what branch will be targeted during update checks (theme branch UX PR).

zogstrip

  • Confirmed Discourse hosted Free is available and pointed users to the official pricing page when asked whether free hosting exists (free plan confirmation).

  • Fixed RSVP/calendar behavior where “My events” could show every upcoming occurrence even when only RSVPing to the next one, and linked the PR for the correction (My events calendar fix).

  • Addressed a PDF preview regression by identifying inconsistency between S3 and non-S3 storage and linking the PR that standardizes behavior (PDF regression fix).

  • Fixed user-directory search inconsistencies for custom fields by aligning the relevant code paths, after a regression report (directory search fix).

  • Pointed to a just-landed fix for the recurring events localization string issue and advised updating to pull it in (recurring localization fix pointer).


Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period: 2026-06-14 → 2026-06-21
New posts: 267
New topics: 35

Top contributors (posts / likes received this week):

User Posts Likes
chapoi 20 47
awesomerobot 23 24
zogstrip 10 31
HAWK 8 26
Canapin 7 23
Helga_Razinkova 3 22
Falco 4 21
JammyDodger 2 19
noahl 2 19
sam 2 14

A couple of themes clearly dominated the week:

Quick link roundup (other active threads worth skimming):


Interesting Topics

#community-building Building

  • Support communities seeing a “drastic drop” in engagement? A thoughtful thread on whether LLMs are displacing peer-support patterns, and how communities might shift toward belonging, events, and human-to-human valueread more

  • Forums that forbid AI/LLM-generated content: what policies actually work? Practical moderation patterns emerged (policy clarity, case-by-case enforcement, and where “AI content” overlaps with spam) — read more

  • Triggering UX/help based on a search keyword (theme vs workflows)? A discussion about whether search terms could become workflow triggers (with performance considerations) — read more

#Announcements

  • AI Helper suggestions moved inline in the composer (ai, ux): category/tag suggestions now integrate directly into the chooser UI to reduce “ask → wait → choose” friction — read more

  • Redesigned admin dashboard: testing + early feedback (dashboard): guidance on previewing via Upcoming changes, plus questions on custom Data Explorer chart formats and traffic/country calculations — read more

  • Unified topic list view: parity/edge-case UI feedback (ux): an issue noted where a “New” link opened the wrong tab in the new topic list layout — read more

ux

  • Hover-to-preview larger emoji (especially custom emoji) (emoji): a request inspired by Discord interaction patterns, with a “totally unofficial” theme component prototype shared — read more

  • Event (calendar) UX issues: link targets, composer extensibility, and advanced settings quirks (calendar-and-events): a detailed list of friction points (including missing plugin outlets) — read more

  • Event email notifications feel “too lean” without the description (email, calendar-and-events): request to include event description in notification emails (not just post body) — read more

  • More recurrence options requested for events (calendar-and-events): “every 3rd week” and “xth weekday every other month/quarter/etc.” suggestions — read more

  • “Delete category” button more prominent than “Save” (now fixed) (categories): UI polish to reduce foot-gun risk — read more

  • Feedback wanted: sidebar topic-feed userscript → theme component/plugin/core? (chat, ux): a compact topic feed inside the sidebar to reduce tab overload and resource usage — read more

#contribute:feature

  • Android share target support for Discourse PWA (pwa): revisiting an older feature request now that Chrome supports PWAs as share targets, including UX expectations and a prototype PR — read more

  • Optionally allow other groups to open/close topics: a request aimed at delegating timer workflows without granting full mod/admin permissions — read more

  • “Simple mode” in doc categories: show all replies after posting (doc-categories): a UX request to avoid the “flash then hide under ‘Show comments’” effect — read more

  • Site setting type: group implemented (after being “never really implemented”) (completed): a neat example of docs/expectations mismatching reality, resulting in a quick core improvement — read more

bug

  • Large polls: users can’t return to amend votes (polls): a bug affecting large/long-lived polls where the “< Vote” button misbehaved; fixes landed in two parts — read more

  • Who closed the poll? (audit trail + UI attribution) (polls): poll closure is now stored/logged and shown directly on the poll for accountability — read more

  • Event custom fields: dashes/periods crash advanced settings, uppercase fields don’t persist (calendar-and-events): field name normalization and validation fixes — read more

  • Error creating events due to a “trust_level_0” edge-case (calendar-and-events): an unusual collision between a test username and event group-name validation; guard added — read more

  • Transparent PNG uploads getting a background (bug): PNG→JPG conversion side effects and workarounds, with follow-up improvements to avoid the workaround in future — read more

Support / #Self-hosting

  • Backup restore fails due to duplicate rows blocking a unique index rebuild (backups): deep debugging guidance (cleanup + reindex) helped unblock a multi-year upgrade path — read more

  • Login dialog offers auth providers that “aren’t enabled” (tabs UI gotcha): a self-host admin confusion resolved by finding the right “Social logins” tab/scroll location — read more

  • S3-compatible uploads failing with Cloudflare R2 (s3): troubleshooting endpoint/CDN URL formatting and bucket naming — read more

  • Search misses words split by inline HTML tags (e.g., <strong> + <sub>) (search): an example where indexing tokenization breaks expected queries after WordPress imports — read more

#Plugins / development

  • ActivityPub plugin disabled on Meta (maintenance mode elsewhere continues) (activitypub): rationale shared (low usage + UI confusion), alongside a reminder to update for security fixes — read more

Activity by the @team Group

  • chapoi shipped and supported across AI, settings, UX, and ops:

    • Announced the inline AI helper suggestions update in ai, #announcementsread more
    • Helped troubleshoot a long-running restore failure and pointed to root causes before others added deeper DB steps (#self-hosting, backups) — read more
    • Confirmed and then completed implementation of site setting type: group (moving from “text-only” to a proper selector) — read more
    • Responded to dashboard redesign feedback and clarified how sections/filters are intended to work (dashboard) — read more
    • Joined the broader conversation on AI’s impact on support communities (Community Building) — read more
  • zogstrip focused heavily on “small sharp fixes” with real-world admin impact:

  • HAWK bridged strategy, community, and operational “workarounds that scale”:

    • Published a companion discussion on using AI in remote-company operations (blog) — read more
    • Brought “first principles” thinking to the community engagement decline discussion (Community Building) — read more
    • Shared migration/SEO expectations and redirect hygiene advice for Bing ranking dips (#support:migration, seo) — read more
    • Offered a practical workaround for letting non-admin organizers “grant badges” via group-managed membership (badges) — read more
    • Engaged in the governance/ownership conversation about what Meta is for (#enterprise) — read more
  • awesomerobot did a bit of everything: community replies, UX confirmation, and rapid bug merges:

    • Added an important “information degradation cycle” lens to the engagement decline thread (Community Building) — read more
    • Investigated and merged a guard for an event creation edge-case involving test usernames (calendar-and-events) — read more
    • Reproduced and explained the HTML-tag tokenization search issue (search) — read more
    • Followed up on category-page UX limitations and what layouts do/don’t communicate activity (categories) — read more
    • Helped users resolve hosted signup/domain reservation confusion (Support) — read more
  • Falco pushed forward mobile/PWA and AI configuration support:

    • Moved the Android share-to-Discourse PWA feature forward with a prototype PR and demo (pwa) — read more
    • Explained how to reduce AI token usage by category-limiting the agent search tool (ai) — read more
    • Diagnosed AI endpoint configuration issues (“blank error” cases) and pointed to correct endpoints/logging (ai) — read more
    • Continued iterating on Resenha plugin capabilities (adding video/screen share behind settings) (#plugin) — read more
  • sam improved day-to-day UX experimentation and internal tooling:

    • Shared an unofficial emoji hover preview theme component for better custom emoji legibility (emoji) — read more
    • Ported the daily summary workflow to a new workflows-based setup (easier prompt iteration/testing) (#site-feedback) — read more
  • nat contributed analytics context + dashboard quality improvements:

    • Connected a sharp user-visits dip to Google Search’s May 2026 core update (helpful for anyone debugging “sudden drops”) — read more
    • Clarified how to opt into the redesigned dashboard via Upcoming changes (dashboard) — read more
    • Noted improved date-range chart heuristics (with credit to community feedback) (dashboard) — read more
  • southpaw reignited and shaped a long-requested mobile workflow:

    • Reopened the Android share-target discussion with concrete UX flow ideas (new topic/reply/PM options) (pwa) — read more
  • Bas helped steer early diagnostic questions in the engagement decline thread:

    • Asked for specificity on which metrics were actually falling (pageviews/topics/active users), keeping the discussion grounded (Community Building) — read more
  • pmusaraj provided a key platform decision update and nudged mobile work forward:

    • Announced that ActivityPub is disabled on Meta (while plugin support continues elsewhere), citing confusion/low usage (activitypub) — read more
    • Confirmed PWA share-target support could extend to the Discourse Hub app (separate process, but on the radar) (pwa) — read more

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Key Stats

Period covered: 2026-06-21 → 2026-06-28

  • New posts: 383
  • New topics: 60

Top users (last 7 days)

User Posts Likes
Falco 23 62
awesomerobot 24 57
Moin 22 54
RGJ 7 37
chapoi 20 28
merefield 10 18
nat 10 18
Lilly 9 17
mcwumbly 11 16
rishabh 2 15

Shipping & product notes worth skimming

  • Discourse shared a monthly roadmap update in #announcements with Current Projects - June 2026: nested replies progress, theme “blocks” work, and more read more
  • Chat got a new UI for reaction attribution (hover / long-press to see who reacted) in #announcements read more
  • Livestream creation in Events got simpler: it’s now a toggle + URL (no more livestream tag) in #announcements read more
  • Multiple calendar/event fixes landed quickly, including unlisted-topic events leaking into calendars (now fixed) read more
  • AI + localization feedback kept rolling in: translation progress reporting concerns read more, plus questions about fallback locale behavior read more

Interesting Topics

#announcements

  • rishabh posted Current Projects - June 2026 covering what Discourse is building next (including theme “blocks” work and ongoing nested replies refinements), with early questions about documentation and experimentation entry points read more

  • davidb introduced a new chat reactions popup so you can see all users who reacted (and filter by reaction type), currently rolled out as an experimental upcoming change read more

  • awesomerobot announced that Livestream is now an optional toggle on event creation (URL-driven, with migration for existing livestream-tagged topics) and outlined the developer-facing API changes read more

#self-hosting

  • A surprisingly heated thread on installing plugins without third-party hosts ended with practical options: mounting host volumes into /plugins for local deployment, or copying code via rsync/cp instead of git clone read more

  • A self-host admin asked if they could disable Discourse updates after plugins broke; the core takeaway was that ./launcher rebuild app is the update mechanism, and pinning requires using a fixed ref (branch/tag/commit hash) with real support/security tradeoffs read more

  • After migrating avatars to S3-compatible Cloudflare R2, Lilly dug into why avatars could take 3–4 seconds to load, including on-the-fly resizing vs. avatar_proxy behavior that can bypass CDN expectations read more

  • A Business-plan misconception got clarified: Discourse is GPL and self-hostable without a plan, and core features like SSO + gamification are available self-hosted too read more

Support

  • A self-hoster trying to use internal AI endpoints (LiteLLM) ran into SSRF protections (FinalDestination::SSRFDetector::DisallowedIpError) and explored the subtlety of DISCOURSE_ALLOWED_INTERNAL_HOSTS needing hostname vs. IP depending on the URL used read more

  • A French-language report said Ask Discourse responses felt worse recently; staff confirmed a model switch to a locally-hosted open-weights model (“DeepSeek v4 flash”) optimized for troubleshooting rather than development use cases read more

  • “Mail jobs are failing” turned out to be a CSS-in-email issue: pseudo selectors like a:visited can break CSS inlining (Nokogiri errors), so email CSS must avoid selectors that can’t be inlined read more

  • A “Where did banner topics go?” question was solved: banner topics still exist, but can’t be used in non-public categories since banners are global to all users read more

  • A Discourse Embed configuration confusion boiled down to definitions: discourseUrl is the forum, discourseEmbedUrl is the host page where the embed lives (and must be a real canonical page) read more

ux

  • A regression where the “New Topic” button doesn’t re-expand its text label after resizing between desktop/mobile views was quickly reproduced and patched via core PR read more

  • UI polishing: the Dismiss dropdown had weird spacing/cutoff behavior across themes, likely related to modernisation changes impacting an intentional design choice read more

  • Multiple reports landed about AI title/icon overlap when editing topic details (stacked icons / mispositioned title-suggest button), with cross-links to the underlying composer AI integration work read more

#feature

  • A hosted Pro customer asked for external video storage (Mux/Vimeo/YouTube); the conversation mapped the constraints (no custom plugins on Pro) and explored possible workarounds, including brokered uploads via Workers as a secure token-hiding layer read more

  • A request to bring “Flag post” into Full-App Embed got a positive response: embed mode intentionally hides actions to fit diverse host sites, but flags may be worth restoring (possibly configurable) read more

  • Localization admins asked for better control over fallback locales (e.g. “serve English to unsupported languages even if default is Finnish”), and staff confirmed fallback locales aren’t supported yet read more

bug

  • Nested replies + email replies initially looked like posts were “missing” or mis-threaded; updating resolved the observed behavior, reinforcing how fast nested replies is evolving and how version labeling can mislead admins read more

  • A long-post editing bottleneck (timeouts saving ~100k-char edits due to diff complexity) is now mitigated by a “diff too complex” fallback, preventing hard failures while preserving revision behavior read more

  • A subtle encoding regression: the Oops page displayed HTML entities like &rsquo; in popular-topic titles instead of proper punctuation read more

  • Calendar privacy bug: events from unlisted topics were still visible on the calendar; a fix was shipped promptly after the report read more

#data-and-reporting

  • AI translation admins asked why the translation progress graph looked “stuck” or misleading; caching was introduced due to timeouts on large sites, and the two-stage process (language detection → translations) is creating real onboarding confusion read more

#site-feedback

  • Meta discussed whether Contribute > Feature should remain a mixed space (open-ended product discussion and vote-driven proposals), or whether conversation should move/expand into other categories like UX to reduce “close-as-done” pressure read more

  • A localization rendering bug: avatars in quotes break in translated posts, with an example thread showing the issue across multiple languages and quote-heavy topics read more

#plugin (and #theme-component)

  • Feedback on Discourse Reactions focused on reducing friction: “click to join an existing reaction like Slack/Discord”, better discoverability for emoji categories, and whether “frequently used” should be per-account rather than per-browser read more

  • Theme component maintenance continues: Topic List Thumbnails received a fix update, and users shared CSS approaches for hiding fallback thumbnails on mobile for image-less topics read more


Activity by the @team Group

Falco

  • Helped close the loop on “no third-party plugin hosting” by pointing to volume mounts into the container’s plugins directory as a viable local workflow read more
  • Clarified that Discourse doesn’t auto-update itself./launcher rebuild app is the primary update path—and discussed the realities of pinning Discourse while keeping plugins compatible read more
  • Continued troubleshooting around internal AI endpoints and SSRF protections by emphasizing correct allowed-host configuration (hostname vs IP expectations) read more
  • Explained why the AI translation progress graph can mislead early on (caching + language-detection stage not shown) and suggested tuning backfill rates according to budget read more
  • Answered why topics translate “faster” than posts given similar batch sizes and post volume per topic, and how to adjust max-age/backfill rate to reduce the gap read more
  • Confirmed self-hosting + feature availability: SSO and gamification are core and available without paid plans when self-hosting read more
  • Set expectations for SEO + nested replies: crawler rendering recently returned to flat content, but a nested-aware crawler view isn’t prioritized yet read more
  • Marked an AI summarize edge case as #wontfix: HTML comments can be included in summaries, and preprocessing tradeoffs aren’t worth it (admins can tweak prompts instead) read more
  • Resolved confusion about embed configuration by clearly distinguishing discourseUrl vs discourseEmbedUrl read more

awesomerobot

  • Shipped a quick fix for the responsive “New Topic” button label not returning after viewport changes read more
  • Explained composer behavior around post voting: category “Ideas” controls defaults, but post voting remains sitewide, and provided a theme-component snippet to hide the toggle outside Ideas categories read more
  • Solved a support mystery: banner topics still exist, but they require the topic to be in a public category (no restricted group permissions) read more
  • Diagnosed Sidekiq email failures as an email-style CSS pseudo-selector issue (a:visited) that breaks CSS inlining read more
  • Steered translation users toward Discourse AI as the preferred path going forward (translator plugin is maintained for bugs/security, but no longer the recommended approach) read more
  • Posted fixes-in-flight for Event UX issues (image behavior + consistent advanced-mode toggles) read more
  • Clarified how to identify/disable various install app / PWA banners, including the native_app_install_banner setting in the relevant case read more
  • Announced two notable product improvements: chat reaction user list popup read more and Livestream as an event attribute read more
  • Updated and maintained theme components such as Topic List Thumbnails read more

chapoi

  • Jumped in early on the “local-only plugins” thread with pointers, then later called out tone drift and encouraged de-escalation while still keeping the thread solution-focused read more
  • Helped clarify confusing version labeling around nested replies (“2026.6.0-latest” not necessarily matching the changelog head), encouraging updates to resolve disappearing-thread issues read more
  • Investigated a Foundation modernization visual regression impacting button display, linked the core fix, and provided a workaround via Upcoming Changes toggles read more
  • Responded to UI feedback about the Dismiss dropdown spacing, noting it was originally intentional but possibly broken by modernisation work read more
  • Assisted with hosted-plan UI confusion around “upgrade options” and suggested alternate admin paths while awaiting the owning team’s follow-up read more

nat

  • Confirmed Ask Discourse changed models recently (to a locally hosted open-weights model) and promised validation on quality regressions read more
  • Engaged deeply with translation reporting feedback and indicated improvements are planned, including better Data Explorer guidance read more
  • Discussed interface/content language settings direction, suggesting interface improvements and targeting near-term implementation read more
  • Helped explain fallback behavior for content localization (no fallback if disabled; “use English” implies setting default to English) read more
  • Asked for targeted diagnostics on an anonymous-access oddity on / when categories lead the top menu (status codes + safe mode + plugin elimination) read more

mcwumbly

  • Addressed hosted video-upload constraints candidly (Mux integrations exist but aren’t planned for lower tiers) and pointed to storage add-ons as an alternative to tier upgrades read more
  • Pushed nested replies forward by discussing future configuration needs, like per-category settings for depth/capping to fit different discussion styles read more
  • Opened an important meta-level process discussion: where “open-ended product discussion” belongs now that Contribute > Feature is increasingly vote/closure oriented read more
  • Responded to requests around embed UI actions (e.g., reintroducing flagging), asking for rationale and constraints so embed can remain clean but functional read more
  • Adjusted category UX on Meta by changing Contribute > Feature default sort away from Votes to Activity to reduce disorientation read more

rishabh

  • Published Current Projects - June 2026, collecting roadmap updates and inviting feedback/questions to shape priorities read more
  • Helped a site get (re)processed for Discourse Discover inclusion after settings changed and the site became public read more

davidb

  • Delivered the chat reactions popup announcement, including enablement instructions under Upcoming Changes read more
  • Closed the loop on a related feature request by pointing back to the shipped implementation and linking the announcement topic read more

markvanlan

  • Continued iterating on nested replies, including clarifying how “in reply to post number” affects nesting and asking for better reproduction details when reports involved email replies read more
  • Announced a change to nested reply default settings (depth reduced, cap enabled) and discussed the longer-term direction (including eventual per-category customization) read more

zogstrip

  • Shipped a fix for calendar privacy/visibility: events from unlisted topics no longer appear on the calendar read more
  • Added a new granular API scope capability (“list all badges”) by providing the core PR link directly in support read more
  • Helped debug a tricky anonymous-access bug report by requesting safe-mode verification and plugin inventory to narrow causes read more

sam

  • Confirmed a long-post edit timeout scenario is addressed by the “diff too complex” fallback behavior, reducing server timeouts while keeping editing possible read more
  • Prioritized and merged a long-standing fix so word limits don’t break IME composition, improving usability for IME users read more
  • Marked a Shared Edits improvement as done (enabling broader access), linking to the shipped PR read more

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

(Covering 2026-06-28 → 2026-07-05)


Key Stats

  • New posts: 415
  • New topics: 53

Top users (posts + likes received this week):

User Posts Likes
Moin 38 60
Lilly 31 56
Falco 16 43
awesomerobot 18 38
chapoi 16 29
mcwumbly 11 24
Don 2 24
NateDhaliwal 12 21
martin 11 18
pmusaraj 8 15

A few recurring themes this week (with receipts): object storage/CDN edge cases (e.g. custom emoji routing in #Bug), admin UX polish (e.g. Upcoming Changes messaging in #UX), and AI configuration + governance (from cost quotas in #Announcements to translation “footguns” in #General).


Interesting Topics

#Announcements

  • Discourse AI got cost-based quotas (budget in dollars, not just tokens), making it easier to control spend across providers — see read more.

  • The June 2026 release announcement landed, linking out to 2026.6 and patch releases (2026.1.5 / 2026.4.2 / 2026.5.1) — read more.

  • Admins can now review & bulk suspend “not yet activated” accounts, improving response to registration waves and suspicious signups — read more.

  • The unified New topic list view (and its impact on DiscourseHub) continued to evolve, including discussion around ordering rules and app/UI alignment — read more.

  • The long-running GIFs-in-core transition kept generating practical admin questions (what’s configurable, what’s hidden behind Upcoming Changes, and why it feels confusing) — read more.

bug

  • A sharp investigation into custom emoji URLs bypassing CDN routing when using S3/R2 ended with a merged fix; the thread also surfaced real-world Cloudflare R2 + CDN configuration pitfalls — read more.

  • A report showed nested replies didn’t respect “staff color / official” presentation, with reproduction confirmed and scoped to nested templates — read more.

  • The Rich Text Editor was found stripping quotes inside [wrap=theme-install-button ...] syntax (breaking installs); a core fix followed quickly — read more.

  • Release-site comparisons were misleading people about security fix counts; the issue was explained as a comparison artifact and fixed via a release-site change — read more.

  • Composer UI: the new “Post Type” actions dropdown could render behind the composer on touch-tablet layouts; a z-index workaround and an intended fix were shared — read more.

Support

  • Domain change woes: Discourse ID credentials can fail after a hostname move on self-hosting, prompting discussion about better admin UX and what can be safely automated — read more.

  • A self-hoster changing domains hit discourse remap duplicate key collisions in analytics + topic_links; the solution involved targeted SQL deletes to remove colliding rows before rerunning remap — read more.

  • AWS feedback loops: one thread resolved the correct AWS SNS webhook endpoint format after trial and error (/webhooks/aws) — read more.

  • Theme Creator users reported downtime (500 “Oops”); the incident was tracked and confirmed back online after a fix merged — read more.

  • Admins asked if Discourse AI calls providers in the background; answer: yes, depending on enabled features (summaries backfill, embeddings, sentiment, etc.) — read more.

#Self-hosting

  • A deep technical guide on trusted client IP propagation clarified how nginx inside the container should interpret headers and trust chains, and why “just pass XFF” can be dangerous if misconfigured — read more.

  • Several threads converged on “real IP” handling after upstream changes: a Cloudflare/IP regression discussion connected to the chain-of-trust writeup and safer defaults — read more.

  • A practical “how-to” question: editing nginx config inside Docker (behind HAProxy) got a clear “don’t edit the container directly; persist via app.yml” answer, plus working set_real_ip_from examples — read more.

  • Object storage performance concerns: users debugging slow avatar loading after moving to S3/R2 explored caching behavior, background generation, and a pointer to updated avatar serving guidance — read more.

  • Rebuild failures tied to missing tsconfigs/packages were traced to deleting core plugin files; the takeaway was “core expects core plugins present”, alongside a hardening PR so the pipeline fails less catastrophically — read more.

ux

  • The admin notification shown when an Upcoming Change becomes official was reported as misleading; the root cause (“skipping to Permanent exposed a link bug”) was identified and patched — read more.

  • Footnotes UX: nested mouseover notes could be authored but not actually accessed; the chosen mitigation was to strip nested footnotes to avoid misleading UI — read more.

  • Dashboard feedback: the redesigned admin dashboard still shows perceived slow initial load and missing polish around pinned Data Explorer outputs vs graphs — read more.

#Theme component

  • “Seasonal branding” got a boost: a new mini component approach was proposed (and prototyped) to schedule logo changes using home-logo-image-url value transformers — read more.

  • Don shipped Post Score, a theme component to show engagement metrics on posts (with requests to document settings) — read more.

  • Don also released a YouTube PiP + topic playlist player component; discussion followed about possible compatibility with livestream/event use cases — read more.

  • The official Homepage Feature component got a modernization pass, including experiments with responsive image sizing—then a quick reversal due to massive thumbnail job queues, plus cleanup guidance — read more.

  • Versatile Banner got a maintenance/security-ish improvement: moving away from a long-lived external image host dependency (imgur) toward theme-sourced assets — read more.


Activity by the @team Group

  • sam advanced AI governance with cost-based AI quotas (read more), weighed in on unified list behavior in the unified New view discussion (read more), and flagged safety constraints around title rendering on error pages (read more).

  • loic published the June 2026 monthly release announcement and changelog pointers (read more), then followed up on confusion around CVE lookups and propagation timing (read more).

  • nat shared hard-won advice on AI translation + indexing/SEO (and linked a first-hand writeup), plus shipped a fix for a translation setting “footgun” (read more).

  • supermathie authored a detailed self-hosting guide on real IP “chain of trust” handling (read more) and applied that thinking to help people affected by header-trust changes after recent commits (read more).

  • Falco helped untangle CDN vs bucket routing assumptions in the custom emoji + S3/R2 thread (including “two CDN” configuration nuance) (read more), clarified support expectations around experimental plugins vs ESR in Resenha (read more), and suggested how to debug AI feature failures by querying ai_api_audit_logs (read more).

  • awesomerobot did a wide “maintenance sweep” across UX and theme ecosystem: release-site security-fix comparison logic was explained at a high level (read more), ProseMirror/RTE wrap-attribute parsing got triaged and routed to a fix (read more), watched-words action precedence was clarified (read more), and multiple theme component updates shipped (e.g. Homepage Feature iterations: read more; Versatile Banner: read more).

  • chapoi provided practical implementation guidance for several admin/customization questions: building a scheduled logo changer via value transformers (read more), recommending the modern approach to custom homepages instead of legacy routes (read more), mitigating nested footnote behavior by stripping nested notes (read more), and shipping an AI-title-button positioning fix (read more).

  • mcwumbly shipped admin tooling to review/suspend non-activated accounts (read more), discussed self-hosting defaults for Upcoming Changes and the trade-offs of enabling changes earlier (read more), and set expectations on the still-unprioritized “secure uploads in chat” effort while gathering real-world impact details (read more).

  • martin kept pushing on the “Upcoming Changes” system: clarifying where “Permanent” changes live and improving guidance around /whats-new (read more), responding to confusing GIF-related “permanent” warnings and metadata typing (read more), and continuing to iterate on unified topic list behavior and DiscourseHub alignment (read more).

  • pmusaraj focused on product correctness and admin sanity: confirming/reproducing a nested replies styling gap (read more), setting expectations on DiscourseHub counts and simplicity trade-offs (read more), and proposing improvements to “first day” limits behavior in Bootstrap Mode via a PR (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

(Weekly window: 2026-07-05 → 2026-07-12)

Key Stats

  • New posts: 392
  • New topics: 57

Top users (posts & likes in the last 7 days)

User Posts Likes Recent contribution
Moin 32 73 Category moderation guidance in read more
Lilly 9 29 GIF provider workaround notes in read more
chapoi 13 28 Theme component release: read more
Falco 11 26 Translation prompt fix proposal: read more
mcwumbly 16 21 On notification granularity direction: read more
NateDhaliwal 15 21 Android quoting workaround debugging: read more
Don 3 20 New TC: language selector moved to sidebar footer read more
awesomerobot 12 20 Category edit validation fix: read more
matthewruzzi 14 19 RFC 5005 request for RSS feeds: read more
lindsey 2 18 Upcoming change: removing Uncategorized special-casing read more

A few “by-the-numbers” themes that kept popping up

  • Content localization & AI translation (bugs, UX, and new controls) were a major through-line this week — from category-scoped translation settings (read more) to translation truncation reports (read more) and prompt/agent tweaks (read more).
  • Reactions + likes UX changes continued to ripple out via bug reports and configuration questions (e.g. a sticky likes popover fix: read more, and reactions-default side effects: read more).
  • Self-hosting ergonomics remained busy: installer + Let’s Encrypt got attention (read more) and disk sizing realities came up again (read more).

Interesting Topics

#Announcements

  • Uncategorized is being removed as a “special” category and migrated to a standard category to eliminate bugs and inconsistencies; guidance includes what to do for tag-only sites (theme component suggestion) and what changes when the upcoming change is enabled — read more

  • GIFs in core: attribution/provider branding resurfaced as a practical concern; when porting GIF support into core, a provider logo/attribution element was missed and is being restored so the picker UI can properly show the source branding — read more

  • Reactions enabled-by-default continues to surface edge cases (especially for communities that “themed” the Like button); feedback described confusing mixed icons/colors and migration friction when reactions suddenly appear — read more

  • Livestream + Events: breakout-room style workflows aren’t supported yet (and depend heavily on providers), but threads-in-chat were floated as a potential workaround while the feature set matures — read more

#Theme_component

  • Move Language Selector to Sidebar Footer shipped as a new theme component, aiming to reduce header clutter; follow-up refined guest behavior so the switcher remains available even when sidebar isn’t shown — read more

  • Schedule Logo Change (seasonal logos) landed as a TC to automatically rotate site logos on a calendar schedule; early feedback surfaced a “defaults until changed” error that’s being investigated — read more

  • Drag & Drop upload + file previews for AI bot conversation pages was published to streamline the “upload a file into a bot conversation” workflow via UI enhancements — read more

  • Topic List Previews (TLP) gained native CSS masonry rendering (where supported), promising big gains in rendering efficiency and power usage (with fallbacks where masonry isn’t available) — read more

#Feature

  • Let users delete their own pending topics/posts from /activity/pending: a PR adds an inline delete button so users don’t need staff help just to retract something still awaiting approval; the thread dug into undo/restore expectations and when confirmation dialogs are warranted — read more

  • “Emoticon to emoji” conversion as a user preference, not site-wide: discussion explored why per-user rebaking/quoting behavior gets complicated quickly, and whether this is worth the technical surface area — read more

  • Better UX for shared Data Explorer reports: request to surface shared reports somewhere more discoverable than group pages; suggestions included adding a dedicated entry in the user menu or conditionally showing a sidebar link when reports are shared — read more

  • Translating custom sidebar links/sections moved closer: the longstanding limitation (custom sidebar content is not localized) got a “soon™” response, continuing the thread that’s been building around sidebar + content-localization expectations — read more

  • Limit topic translation to specific categories: a change was merged adding a new setting type that supports scopes like “all/public” or inclusion/exclusion lists, enabling more nuanced rollouts for content-localizationread more

  • RFC 5005 for Discourse RSS feeds: request to go beyond “latest 25 items” and support feed paging/archiving so consumers can reach older entries in a standards-based way — read more

bug

  • Android “highlight to quote” intermittently breaks — and the workaround is bizarrely effective: reacting to a post can re-enable selection; deeper analysis points at a “no text selection” global state leaking from reactions touch handling — read more

  • Category edit bug: slug becomes “required” when toggling certain category settings even if it was optional/blank at creation; fix is to auto-generate on save and loosen overly strict validation — read more

  • German translations sometimes include raw translation wrapper/JSON artifacts; investigation identified prompt contradictions and a fix was proposed, plus guidance for admins who copied default agents to update their prompt templates too — read more

  • Translations silently truncating mid-sentence without errors: reports describe incomplete saved translations when JSON stream parsing breaks, with no rails/sidekiq logs indicating failure — read more

  • Likes popover UI can “stick” after navigating to a user profile (especially at top-of-topic); a fix was merged quickly after reproducible reports across browsers — read more

  • Flagged chat images don’t appear in the review queue snapshot: moderators can’t see the uploaded image that was reported, especially confusing in DMs where transcripts omit the flagged payload — read more

Support

  • New installer feedback: great when it works, but hostname/Let’s Encrypt rate limits can be punishing during repeated testing; discussion included plans to move away from acme.sh toward nginx native ACME support to better surface and handle these failures — read more

  • Disk space too full to update (25GB VPS realities): even small instances can hit Docker overlay and image-pull overhead; the thread walks through where space goes and why many admins end up upsizing rather than constantly pruning — read more

General

  • “Forums that forbid AI content… how’s it going?” continued with on-the-ground moderation perspectives: detection is getting harder, false positives are common, and policy + human moderation remains the primary lever (but it’s exhausting) — read more

  • “Curious to Hear Your Best Discourse Lesson So Far” sparked practical admin wisdom: avoid building communities before there’s a real need, and spend time in Documentation before reinventing wheels — read more


Activity by the @team Group

  • lindsey led communication around the upcoming change to remove special handling for Uncategorized (read more) and clarified limits/next steps for livestream breakout-room style requests in Events (read more).

  • chapoi shipped and supported new theme components, including scheduled/seasonal logo rotation (read more), and participated in the UX discussion on “delete pending topics” (modal friction vs recoverability) (read more). They also helped troubleshoot reactions/likes behavior changes affecting reactions-disabled sites (read more) and provided clarity on Discourse hosting vs self-hosting in a Wix integration question (read more).

  • Falco focused heavily on Discourse AI operations and robustness: proposing fixes for translation prompt contradictions (read more), explaining why pairing new AI models with older Discourse versions is brittle (read more), and advising on prompt-level control to preserve proprietary vocabulary during translation (read more). They also guided self-hosters experimenting with Ollama via OpenAI compatibility (read more) and gave insight into installer + Let’s Encrypt rate-limit pitfalls and future ACME changes (read more).

  • mcwumbly steered multiple “scope vs complexity” conversations: notification granularity as a longer-term direction over simple group hardcoding (read more), the technical constraints behind per-user emoji/emoticon conversion preferences (read more), and how to evolve Discobot Discoveries feedback into concrete examples rather than a generic feature request (read more). They also clarified hosting plan changes (Starter plan legacy) (read more) and explored richer layout controls for auto-grids (list vs grid vs carousel modes) (read more).

  • awesomerobot landed quick fixes and guidance across UX and bugs: category slug validation being too strict on edits (read more), the “refresh banner after update” being a core behavior and why it’s rare outside Meta’s deploy cadence (read more), and translated category descriptions being treated inconsistently (with a PR to align behavior) (read more). They also updated the Discourse themes beginner documentation to match the latest UI (read more) and contributed practical font-selection advice for accessibility/performance (read more).

  • martin continued the “granular group-based permissions” rollout work by mapping settings impacts and coordinating follow-up tweaks (read more), and addressed UI cleanup on the Upcoming Changes page by removing the confusing “Permanent” filter (read more). They also helped track down a missing GIF-provider attribution element during the move into core (read more).

  • nat advanced two important localization/admin UX threads: confirming sidebar translation work is coming soon (read more) and shipping a merged improvement to scope topic translation by category selection modes (read more). They also engaged on making shared Data Explorer reports more discoverable in the UI (read more) and began diagnosing stricter tag-usage restrictions interacting with admin-only tags (read more).

  • HAWK clarified policy/expectations around RSS feed usage on Meta (RSS is fine; ToS language targets abusive scraping/monitoring) (read more) and revisited how standard Discourse rate limits still apply on Ask Discourse because it’s Discourse-powered (read more).

  • davidb drove several “fast turnaround” fixes and clarifications: restoring GIF provider attribution in core (read more), shipping and merging a fix for the sticky likes popover UI bug (read more), and correcting messaging around the “simpler email subject lines” upcoming change so admins understand preferences will be respected (read more). They also explained how reactions-by-default can produce “double-like” visuals unless opted out via upcoming changes settings (read more).

  • j.jaffeux shared roadmap notes: workflows will soon enable “search-triggered tips/modals” behavior (closing an older request in anticipation of rollout) (read more), confirmed work-in-progress on pinning chat messages for visibility (read more), and provided historical context on early Reactions implementation choices (local storage convenience at the time) (read more).

Thanks for reading, and I’ll see you again next week! :slight_smile:

This week on meta.discourse.org

Reporting window: 2026-07-12 → 2026-07-19 (7 days), based on the same kind of activity snapshot you can now explore via the redesigned admin dashboard discussions (see read more).


Key Stats

  • Total new posts: 446 (last 7 days) — context: discussion around measuring/seeing these kinds of metrics continues in the redesigned dashboard thread (read more).
  • Total new topics: 71 (last 7 days) — and “what belongs where” in admin continues to evolve, e.g. category tooling and admin UX changes (read more, read more).

Top users (posts + likes received)

User Posts Likes Recent highlight
Lilly 16 57 Self-hosting clarity + practical guidance in Confused about Self Hosting
Moin 32 56 Helping debug PDF behavior + pointing to regressions in Make PDF previews actually readable
lindsey 4 47 Previewing a big new automation direction in A preview of the new Workflows feature
Falco 9 46 Explaining hosted AI model routing in What is CDCK/MoM?
awesomerobot 11 45 Shipping a quick core enhancement in Allow to exclude groups in /filter
merefield 17 41 Adding context to the SEO/AI “trade-off” debate in Support forum activity drop thread
Don 10 40 Prompting reflective admin wisdom in Message from the future :envelope_with_arrow:
martin 10 33 Launching improved admin category visibility in Introducing the admin category management page
chapoi 18 27 Standards-based composer explanation in Text after div tags does not get rendered properly
darkpixlz 11 24 Clarifying Meta’s theme status in What theme does the discourse official community use?

Interesting Topics

#Announcements

  • Workflows gets a first look (workflows): lindsey shared a preview of a new visual builder designed to go beyond Automations for multi-step logic, delays, conditions, and external/AI actions — with docs evolving in parallel (read more, read more).

  • Admin category management page lands: A new /admin/config/category-management directory makes category type/visibility/relationships easier to audit, with quick follow-up UX tweaks discussed and PR’d (read more).

  • Inviting admins gets a safer + clearer flow (invites): keegan introduced a single-step admin invite path that grants moderator first, then admin after email confirmation — and the thread immediately explored “invite moderator vs admin” ergonomics (read more).

  • Solved badges now default-on for new communities (solved): A small but meaningful nudge toward recognition/healthy support loops, including answers about backfill behavior for existing solved posts (read more).

  • Email login codes (not magic links) arrive (login, signup): Discourse introduced a passwordless code flow that avoids in-app browser magic-link pitfalls and sets the stage for future passkey nudges (read more).

  • Discourse Free Plan announcement discussion: The companion thread for the Free Plan blog post captured early reactions and context around what’s included and what isn’t (read more).

#Hosted-Customers

  • What is “CDCK/MoM” in AI settings? (ai): Falco explained the hosted “Mixture of Models” router that picks open-weight models per task (summaries, embeddings, assistant actions) using AI credits (read more).

#Self-Hosting

  • Self-hosting vs managed hosting: the terminology trap (server-resources, hosting): A newcomer asked the “what does self-hosting actually mean” questions, and got a surprisingly thorough set of answers on VPS vs home hardware, maintenance expectations, and trade-offs (read more).

  • “After the update… forum not functioning properly”: A classic post-upgrade failure mode (migrations/theme cache) was diagnosed quickly with rebuild + migrations guidance, and the OP confirmed success (read more).

  • Real IP handling changed through proxies (solved): A reverse-proxy setup stopped attributing real client IPs correctly, and the fix shifted toward set_real_ip_from / chain-of-trust configuration (read more).

  • A beginner’s VPS install “process with FAQs” (live thread) (install, domains, email): A step-by-step build log is forming around ordering DNS/SMTP/domain decisions, with warnings about trying to solve SSO too early and reminders about backups/responsibility (read more).

sso

  • Wix logins + Discourse: “what are my options?” (openid-connect, discourseconnect): The thread hit two constraints at once — Discourse Free plan auth limitations and Wix SSO availability — pushing the discussion toward realistic integration paths and hosting plan choices (read more).

#Feature

  • Make inline PDF previews actually readable (pdf-previews): A request to improve the default embedded PDF usability turned into a wider discussion about click-to-open vs forced downloads, regression timing, and preview ergonomics (read more).

  • Exclude groups in /filter (topic-filter): A small but powerful enhancement request got a rapid core PR + merge, extending existing filter patterns cleanly (read more).

  • Per-category control for “who can accept solutions” (solved): A practical multi-tenant pattern emerged: public categories need strict “OP/mod/admin only”, but client-only categories may want “anyone in the client group can mark solved” (read more).

bug

  • AI bot Retry duplicates posts in public topics (ai, ai-bot): The report highlights how “Retry” should regenerate in-place (like DMs), not flood topics with new bot replies — with a fix already underway (read more).

  • Translated/localized cooked HTML skips post_process_cooked hooks (affiliate, content-localization): A deep plugin-integrations bug: affiliate rewriting works on original cooked HTML, but not on translated cooked content — meaning lost commissions/rewrites per locale (read more).

  • Deleted posts still show full content when translation is enabled (ai, dynaloc): A serious “privacy/expectation” issue where translated views could continue rendering content after the author deletes the post in the original language (read more).

  • Numeric tags conflict/ambiguity in older URL forms (tags): An odd edge case where a numeric tag name like 2013 can collide with an existing tag’s ID-based route and resolve incorrectly (read more).

Support

  • Keeping rebuilds running after SSH disconnects (nohup vs tmux): A pragmatic ops thread recommending tmux/screen over nohup so rebuilds survive session drops and can be reattached (read more).

  • Composer paste includes <span lang="…"> fragments (composer): A very niche (and very real) “pasting from rich scripture sites” problem: spans show up in the composer, and spacing/rendering becomes tricky — with core changes being evaluated carefully to avoid stripping intentional markup (read more).

Community Building

  • Support forums seeing activity drops (AI + SEO + gating trade-offs): A wide-ranging thread debated “private-by-login” vs discoverability, the shift from “library value” to “coffee shop value,” and how to measure success in a world where AI consumes answers without sending clicks back (read more).

  • “Message from the future”: advice you’d send to your first-time admin self: A reflective prompt produced lots of “KISS principle,” “read the docs,” “don’t over-customize,” and “hire expertise when needed” wisdom (read more).

General

  • What’s the record for “most posts in a single topic”?: A fun (but performance-relevant) question revisited megatopic limits, real-world examples, and why Discourse defaults to auto-closing around 10k posts (read more).

#Plugin

  • Resenha voice rooms: SFU via LiveKit + QoL upgrades: The Resenha plugin continues maturing with optional SFU scaling, device pickers, mentionability, and layout controls — moving it closer to “serious community voice” territory (read more).

Activity by the @team Group

  • lindsey drove multiple product announcements and defaults: the early look at Workflows (read more), the official Workflows plugin topic + enablement detail (read more), and enabling Solved badges by default for new communities (read more). She also extended the “default-on badges” approach to Topic Voting badges in the ongoing improvements thread (read more).

  • Falco focused on AI and hosted-customer clarity: explaining CDCK/MoM routing and credit usage (read more), addressing the AI-bot “Retry duplicates replies” bug with a fix PR linked from the report (read more), and clarifying Gemini embeddings compatibility (AI Studio vs Vertex/Enterprise endpoints) in a solved support thread (read more). He also posted substantive Resenha plugin updates around SFU scalability (read more).

  • awesomerobot shipped fast iterations across core and theme components: implementing exclude groups support in /filter with a quick PR + merge (read more), explaining trade-offs in the support-forum activity debate (SEO visibility vs gating) (read more), and taking on the mobile breakage in Custom Top Navigation Links with refactoring work (read more). He also triaged upstream dependency constraints for FullCalendar icon font warnings (read more).

  • martin continued the “admin information architecture” push: announcing the new Category management page for visibility and type-based filtering (read more), and implementing improvements to granular group-based permissions (including follow-up PRs) in the longer-running permissions announcement thread (read more, read more). He also engaged in cleanup and communication around the GIFs-to-core transition and related admin warnings (read more).

  • chapoi landed multiple UX and standards-alignment improvements: merging the Horizon theme mobile padding fix for PM small-actions (read more), giving a clear CommonMark-based explanation for <div> HTML block parsing (and why blank lines matter) (read more), and improving “First reaction” badge copy so admins can reduce confusion (read more). He also continued to defend the dashboard/navigation trade-offs with admins who want “version info” front-and-center (read more).

  • david tackled developer-facing maintenance churn: improving how Discourse handles theme-component compatibility metadata and warnings (read more), providing clear guidance on end-of-life theme components (e.g., “desktop/mobile view” switching no longer being a thing) (read more), and publishing deprecation timelines for .hbs and .js.es6 in themes/plugins (read more, read more). He also helped diagnose a nasty “everything broken after upgrade” theme compiler issue with a console-based cache reset (read more).

  • zogstrip pushed a steady stream of “small but sharp” fixes: repairing Topic Voting’s notification prompt when vote limits are disabled (read more), fixing upcoming-events behavior around subcategory filtering (read more), addressing tracking/watching regressions around small post actions (read more), and fixing localized/translated cooked processing so plugin hooks (like affiliate rewriting) apply consistently (read more). He also explained the practical limit of “fixing” IMDB oneboxes when a WAF blocks scraping, focusing instead on improving the user-facing error message (read more), and queued a fix for S3 multipart backup upload failures (read more).

  • pmusaraj supported signup/login and admin-facing bug triage: clarifying why email code login flows avoid in-app browser issues (and teeing up future passkey nudges) (read more), reproducing and fixing the avatar selector crash with selectable avatars (read more), and outlining the “why” behind Discourse ID (reduced admin auth maintenance, future centralized account controls) (read more).

  • mcwumbly leaned into product direction + configuration granularity: probing the real-world use case for per-category “who can accept solutions” and affirming the broader move toward category-level building blocks (read more, read more). He also validated the usefulness of excluding groups in /filter from a UX standpoint (read more) and pushed on URL semantics that would avoid numeric tag ambiguity for backward compatibility (read more).

  • keegan delivered the improved admin-invite experience and explained the onboarding/security rationale behind “moderator first, admin after confirmation” (read more).


Thanks for reading, and I’ll see you again next week! :slight_smile: