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).
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
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
A fun and insightful thread asked: “How old is your forum?”—prompting migration histories from Yahoo Groups, phpBB, Ning, vBulletin, and more (#Community 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) — read more
Meta’s evergreen “Discourse is great” energy continued, with community members sharing milestones and encouragement (#Praise) — read more
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
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
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
#Plugin / #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) (#Plugin) — read more
Another plugin showcase: a Discourse Points Mall prototype (check-in, shop, orders, ledger) with candid notes about current bugs and readiness (#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, #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, #Theme component) — read more
“Banner Featured Links” got an update to address htmlSafe deprecation and other cleanup, pinned to 2026.3.0-latest (#Theme component) — read more
The terminal-based Discourse client “termcourse” added MessageBus-powered realtime notifications and began aligning shortcut conventions (experimental, #Extras) — read more
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!
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):
Discourse added Calendar subscription URLs (ICS feeds) directly in user preferences, including bookmarks-with-reminders and optional event feeds when the calendar plugin is enabled: Calendar subscription URLs for external calendar apps.
March’s “what we’re building” roundup shipped, including AI limit increases and a roadmap-style digest in Current Projects - March 2026.
A new experimental plugin brings a “Wikipedia-style” workflow for post improvements without granting broad edit rights: Discourse Suggested Edits.
Plugin authors got a big modernization with caching, ES modules, and precompile opportunities in Introducing a new build system for plugins, and the compiler was soon enabled by default in latest (read more).
The review-queue prompt “Is this post something else or spam?” triggered a nuanced UX/wording discussion about binary prompts, dropdown semantics, and grammar ambiguity in “Is this post something else or spam?”.
A “dismiss” button that isn’t truly dismissing (because the underlying condition persists) raised the broader question of snoozing vs clearing admin notices in Clearing advice doesn’t actually clear it.
Meta’s own “Guidelines / FAQ” discoverability prompted discussion about static pages vs topics, restricted categories, and search expectations in Guidelines/FAQ not appearing in search results?.
People couldn’t find the releases site, and the community pushed for better IA/link placement — resulting in quick fixes discussed in Where is the link to the releases? (with changes implemented shortly after: read more).
Cloudflare ops folks shared updated real-world WAF/rules guidance and plan limitations (e.g., regex operator availability) in the evergreen guide thread Using Discourse with Cloudflare: Best Practices.
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 / #Theme component / #Extras
A new gamification-style plugin for recurring check-ins, leaderboards, and badges dropped in Discourse Daily Challenges.
People want per-post translation UX that’s less fiddly than highlight→Ask AI→Translate, plus a way to cache/save translations to avoid repeated API spend: Translate post with AI and save translation (building on earlier localization ideas: read more).
david 重点关注 发布体验 和升级信号:他在安全修复线程中解决了关于缺失 Meta 公告和仪表板混乱的担忧(阅读更多),移动并组织了发布站点反馈,同时迅速交付了如 RSS 等改进(阅读更多),并回应了自托管版本锁定问题(并纠正了设置 version: 的位置)(阅读更多)。他还推动了核心修复/更新,涵盖“新版本”邮件投递(阅读更多)和 Facebook iPhone 应用内浏览器的 UA 检测(阅读更多),并记录了旧版内联脚本标签的移除(阅读更多)。
Falco 结合了产品反馈、集成和 AI:他解释了为何许多安全修复集中发布(阅读更多),更新了 Discourse 博客的嵌入式评论体验并指出了主题/内边距问题以进行迭代(阅读更多),并推进了 Patreon 插件 API v2 迁移——按请求添加了自定义用户代理(阅读更多)。他还澄清了聊天/GIF 行为预期(功能还是 bug)(阅读更多),将日历功能请求指向新的订阅 URL 工作(阅读更多),并提议改进 AI 翻译控制,以便管理员可以明确选择是否包含私信(阅读更多)。
pmusaraj 调查了 ActivityPub 互操作性问题:识别出 Mastodon 的参数变更(scope → scopes)并提出了上游/插件内的修复方案(阅读更多),随后的 Discourse↔Discourse AP 验证问题被缩小到 Meta 参与者行为与其他参与者行为的差异(阅读更多)。他还确认了 Discourse ID 针对重定向 URI 冲突的改进(阅读更多),并跟进免费层级站点上的备用邮箱行为(阅读更多)。
manuel 针对有人报告“Meta 不再通知我”的情况,直接提供了关于通知设置(关注/追踪)的终端用户指导(阅读更多)。
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
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, #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
#Theme component
Discourse Lucide Icons (#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 (#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, #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 (#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, #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
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
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 & 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
Falco anchored several “what’s realistically supported?” conversations, including legacy OS access expectations (Windows support guidance), and helped land calendar subscription improvements by implementing a better calendar name field for Google/Outlook via X-WR-CALNAME (webcal name fix PR link in-topic). He also engaged in AI/provider nuance in support threads about model selection and constraints (Mistral translation/images discussion).
zogstrip handled multiple fast-turnaround fixes and polish items: making preview “reading time” localizable instead of hardcoded (“mins” localization fix), fixing ampersand escaping in calendar event sync (& in event titles), addressing RSS exclude_tag behavior (exclude_tag RSS fix), and tackling composer/UX text issues (“discard post” wording) (discard prompt fix).
mcwumbly steered “Meta about Meta” conversations: asking how to encourage community-building discussions after category changes (community-building structure discussion), responding thoughtfully to concerns about developer time and autonomy in the Boosts experiment debate (Boosts philosophy response), and collaborating on reducing confusion around plugin availability callouts (plugin availability notes).
david clarified Discourse’s rationale around deprecations and platform consistency (especially the .js.es6 extension confusion and tooling impact) (deprecation rationale), and diagnosed a self-hosting CDN/CORS issue affecting highlightjs bundles with a concrete fix proposal (highlightjs bundle URL fix).
davidb investigated and merged structured data fixes for missing microdata fields, while identifying edge cases like emoji-only and image-only posts confusing validators (schema/microdata update).
supermathie helped untangle a “private topics” ticketing configuration scare by pushing for clearer problem statements and future-reader usefulness (requesting explanation for posterity), and contributed practical confirmation about calendar name fields across clients (Outlook expectations) (X-WR-CALNAME confirmation).
Thanks for reading, and I’ll see you again next week!
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)
#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)
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)
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)
#plugin / #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 (#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 (#theme-component) (read more)
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 (#extras) (read more)
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!
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
Generalshow-and-tellkirupa shared an update on resurrecting a quiet community with bots—now with full source code published for others to learn from. read more
#Announcements
#Announcementstopic-votingbadges New Topic Voting badges landed (Daydreamer → Visionary), plus thoughtful backfill/notification rules to avoid spamming users for ancient vote milestones. read more
#Announcementstrust-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
#Announcementsrelease-notes The April 2026 monthly release shipped, with the canonical changelog linked for the full list of improvements and fixes. read more
#Announcementscalendar-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
bugdata-explorer A Data Explorer UI regression limited report results to a cramped, scroll-boxed view—quickly confirmed and fixed for affected sites. read more
bugfixed 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
bugchat A “phantom ping spam” issue caused duplicate mention notifications from a single message; a fix was merged shortly after reports. read more
bugcomposerai 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
bugfixed 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
uxinvites 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
uxcategory-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
uxtagsmobile 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 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
Supportemail 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
Supportcomposer Admins asked how to hide category descriptions in the category chooser; a small CSS snippet solved it cleanly. read more
Supportuser-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
#Theme component / #Theme
#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
#Theme componentModern User Card work continues: restoring/modernizing the experimental usercard design surfaced deprecations and refactor needs as core evolves. read more
#Theme The new Verso theme dropped: lightweight, editorial-inspired styling with soft colors and both light/dark schemes. read more
developmenttheme-guidesblocks 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 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
blogDiscourse Discover: Hobbyist Edition highlighted communities built on deep, durable expertise—exactly the kind of “slow web” Discourse tends to enable. read more
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!
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).
“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).
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).
#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).
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).
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).
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).
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
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).
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!
martin 扩展了“类别类型设置”计划,使事件类别更易于配置(阅读更多),并在 Horizon 中默认启用高上下文话题卡片以丰富发现功能(阅读更多)。他还通过引入新的伪组来分离匿名用户与已登录用户,从而改进了更清晰的组语义(阅读更多),改进了管理员“即将变更”UI 中的报告功能选项(阅读更多),并澄清了“即将变更”条目中可选的“预览”和“反馈”链接的工作原理(阅读更多)。
david 启动了一项重大开发新闻,介绍了 Discourse 核心的全新 JavaScript 构建系统(rolldown + 原生 ES 模块),在保持生产环境稳定的同时大幅提升了开发模式性能(阅读更多)。他还建议通过检查浏览器控制台中的功能检测失败来调试与 Discourse 不兼容的浏览器(阅读更多),并更新了关于新的 d-compat/* 策略的文档,用于插件/主题兼容性锁定(阅读更多)。
sam 发布/宣布了一项用户通知体验改进:小型操作不再计入追踪/关注活动,减少了批量关闭和计时器期间的“行政琐事打扰”(阅读更多)。他还将幽灵未读报告与小型操作变更的发布路径联系起来(阅读更多),并指引自托管故障排查者关注特定的提交集以修复中间件防护问题(阅读更多)。
chapoi 在用户体验和支持线程中保持活跃:确认幽灵未读bug 并证实团队正在处理(阅读更多);提出反对按用户设置嵌套/线性视图偏好的详细心理模型论证(阅读更多);指出结构化布局的实用选项(并澄清建议何时适用于主题列表或帖子正文)(阅读更多);并帮助集成商找到聊天频道创建 API 端点(阅读更多)。