Biggest “news” posts: a Meta-only experiment with Boosts (read more) and an update to Solved notifications for watchers/trackers in support categories (read more).
Also seeing fresh replies in ongoing threads: numeric-tag URL errors (read more), localized emoji search aliases landing (read more), Bitnami installs being unsupported resurfacing (read more), and “how do I filter topic lists?” tips (read more).
Interesting Topics
#Announcements
lindsey introduced a live experiment: “Boosts”—a short, one-per-post micro-reaction that’s meant to sit between a standard reaction and a full reply (read more). Early feedback covered visibility glitches, naming confusion, translation gaps, and UX nits like accidental flag clicks near the boost UI (read more).
Discourse improved the solved experience: if you’re Tracking or Watching a topic in a support category, you’ll now get a notification when it’s marked solved (read more). The announcement also links back to guidance on setting up support categories (read more) and the main Solved plugin doc (read more).
The long-running “content gardening hub” experiment got a practical boost: Moin pointed out two near-duplicate feature requests about merging posts (read more), linking to “merge replies with OP” (read more) and “cannot merge first & second post” (read more). NateDhaliwal also shared a staff-focused topic-filter query to help find bug/#ux topics that probably need a fixed tag when a PR is already linked (read more).
Enforcing 2fa can strand logged-in users on the security screen, so the thread focused on how to embed better guidance into the enforcement experience. supermathie pointed to customizing site text strings (read more), while awesomerobot suggested a theme-component approach to insert richer HTML content above the wrapper outlet (read more).
A 500 error on an old numeric-tag URL (bad for crawlers) was diagnosed with logs and a likely backend name/ID resolution mismatch; nat confirmed the team has eyes on it and a fix is coming (read more).
On ask.discourse.com, a UI nit: the “Back to Forum” link appears even on the homepage where it’s redundant; NateDhaliwal proposed hiding it there (read more).
Tag banners looked “empty” because tags weren’t rendering; awesomerobot traced it to upstream data changes, shipped a fix in the tag-banners plugin, and confirmed they were back on Meta (read more).
A hosted AI translation mishap produced “AI commentary” / “thinking” text leaking into German output; nat said the agent formatting was tightened, linked the deployed fix, and cleaned up affected titles/posts (read more).
Cloudflare R2 backups: users reported multipart upload failures tied to aws-sdk-s3 1.182.0 (undefined method 'downcase' for nil). pfaffman shared a prior workaround thread (read more) referencing the earlier aws-sdk bump discussion (read more), and the OP confirmed pinning gems restored successful uploads (read more). (Related: ongoing CDN/CORS troubleshooting patterns also showed up in the recent self-hosting CORS thread (read more).)
iPad Safari briefly showed the composer jumping to the top and losing button functionality; after a few checks (including theme suspicion), the issue became non-reproducible—filed as “the joys of computing” for now (read more).
The Category Experts plugin crashed during user merges; zogstrip acknowledged the report and pointed to the PR that resolves it (read more).
#Feature
A localization edge case: in combined tag + category banners, tag icons render for English tags but not for translated tags; a feature request was opened to make translated tag banners consistent (read more)—building on recent momentum around translated tag/icon support (read more).
AI feature request: Mistral embeddings integration hits an OpenAI-compat mismatch (dimensions vs output_dimension), where leaving out dimensions makes tests pass but blocks saving because the UI requires it (read more). The report references earlier setup guidance for Mistral embeddings (read more).
“Where are the design resources?”: for UI designers, the recommended path was enabling the built-in styleguide; the topic was marked solved (read more).
lindsey kicked off two high-signal announcements: testing Boosts on Meta (read more) and Solved notifications for Tracking/Watching users in support categories (read more).
nat confirmed a fix is forthcoming for the numeric-tag URL 500 regression (read more), posted an update on the AI-translation “thinking text” leak (including cleanup) (read more), and continued the multilingual push by linking “Building for every language” as the next blog entry (read more).
zogstrip helped debug early Boosts rollout quirks (visibility/refresh) and clarified it’s not intended to reorder/bump posts (read more). They also pointed reporters toward a fix for a Category Experts merge crash (read more) and flagged Bitnami as a likely factor in a polls-related stack trace report (read more)—with relevant context that Bitnami installs are unsupported (read more) and the container image has been deprecated (read more).
awesomerobot shipped fast turnaround on a tag-banner regression: diagnosis + fix + confirmation on Meta (read more), and provided a concrete theme-component recipe to inject richer guidance into the enforced 2FA screen (read more).
supermathie shared the simplest admin-friendly option for 2FA enforcement messaging—customizing the relevant site text string in /admin/customize/site_texts (read more)—and earlier helped surface the severity of the numeric-tag URL 500s with logs (read more).
Falco closed the loop on a long-running emoji request: English + translated emoji aliases are now implemented, along with a payload size reduction (read more). They also chimed in on a self-hosting migration-collision oddity with a bit of gallows humor (read more).
davidb pointed to the upstream commit that should resolve group dropdowns not refreshing when new groups are created (read more).
“There are only two hard things in Computer Science: cache invalidation and naming things.” — resurfaced again while everyone tried out Boosts (read more).
Until tomorrow: may your tags resolve to names (not IDs), your backups finish multipart uploads, and your rockets boost morale more than they boost confusion.
A big chunk of today’s conversation clustered around how “Boosts” fit into Discourse’s interaction model—especially around naming, moderation, and UI complexity (read more, read more).
Interesting Topics
#Announcements
Lilly, putty, Shauny, Canapin and others dug into what Boosts are for (vs reactions/likes), whether they’re optional, and how moderation/flagging should work—plus a lively naming debate (“Boost” vs something less algorithmic-sounding) (read more, read more, read more, read more).
The new embedding approach prompted feedback about UX tradeoffs: infinite-scroll discoverability, iframe drawbacks, and “how do I add a top-level comment without scrolling to the end?” (read more, read more, read more).
A new official how-to covered auto-provisioning accounts when external auth (DiscourseConnect / OIDC / OAuth2 / SAML, etc.) is enabled—aimed at skipping the extra signup confirmation step via site settings (read more).
On Ask Discourse specifically, the “Back to Forum” link was called out as confusing on the homepage; awesomerobot noted ask.discourse.com is a special customization case and would be adjusted (read more).
Self-hosters revisited iOS “Add to Home Screen” push notifications: Falco confirmed it should work on iOS 16.4+, then the thread dug into why certain admin flows (e.g. impersonation) can break it and why Discourse currently wipes keys on logout (read more, read more, read more, read more).
A moderation workflow surprise: a hidden post can reappear after the author edits it, which prompted discussion about “intended behavior” vs “needs approval before reinstating,” and when “request revision” is the safer tool (read more, read more, read more).
A user asked how to stop the composer panel from appearing when editing; the conversation quickly narrowed to toggling between rich-text and Markdown modes (read more, read more).
#Plugin
A prototype “workspaces” plugin proposed turning top-level categories into Slack/Mattermost-like team spaces, pairing channels with chat channels, and adding join/leave + guest access flows; mcwumbly asked about real-world usage and rollout plans (read more, read more, read more).
The “Discourse Daily Challenges” plugin thread had a practical hiccup: GitHub access started returning 404 for some users, leading to a move to GitLab and updated links (and a side-note about GitHub account flags) (read more, read more, read more).
The long-running Pushover plugin got a fresh burst of life: featheredtoast posted that it’s been updated/modernized for current Discourse versions (read more).
A new report flagged that when using Mistral for translations, translated posts lose embedded images (text-only rendering), whereas OpenAI translations didn’t—complete with repro steps and an external example link (read more).
A Safari PWA issue report: /upcoming-events appears to trigger user-facing rate limiting in production, backed by a screen recording and version details (read more).
Cloudflare R2 backups: someone confirmed a workaround for multipart upload failures (aws-sdk-s3 1.182.0 / downcase nil) and noted the fix required placing the change in its own hooks: block (read more).
#Feature
A thread on “logged out” popups continued with a security/auditability angle: clarifying that admins can force-log-out users, and debating whether the UI should indicate who initiated the logout without exposing sensitive info like IPs (read more, read more).
awesomerobot spent time clarifying the intent and safety boundaries of Boosts—including that the feature will be optional, how it compares to Basecamp’s version, and current moderation coverage (watched words yes; AI scan not yet) (read more, read more, read more). They also pointed someone to discover.discourse.org when asked about transit/urbanism communities (read more), and noted Ask Discourse’s homepage needs a small customization tweak for the “Back to Forum” link (read more).
j.jaffeux outlined the longer-term interaction hierarchy thinking—where boosts sit today and how Discourse might eventually unify boosts/reactions/likes so communities can pick what fits their culture/scale (read more).
Falco confirmed that iOS home-screen installs on iOS 16.4+ should receive push notifications, and then pinpointed a specific code path that causes fragile behavior when admins impersonate users (read more, read more).
featheredtoast explained the security rationale behind wiping push keys on logout (preventing sensitive previews from going to logged-out devices), and floated a more nuanced approach (session-bound subscriptions) as a future improvement (read more). They also revived the Pushover plugin by modernizing it for current Discourse versions (read more).
mcwumbly jumped into the new “workspace groups” prototype to validate the direction and ask the most important question: “is this in the wild yet?”—helping frame it as an RFC before production migration (read more).
Yesterday’s vibe in one sentence: if your notifications didn’t push, at least your comments could still get a morale Boost—just maybe not three new buttons’ worth of it (read more, read more).
New activity (last 24h):69 new posts across 13 new topics (plus ongoing discussions), including threads like minimalist feature setups (read more), translation/language requests (read more), and category security regressions (read more).
Flagged confusing composer UX around “Discard” while editing posts (read more) and weighed in on preserving upload:// image links in AI translations (read more).
Shared a “minimal (but practical)” configuration and plugin/theme stack (read more), plus continued the “Boosts” UI discussion with prototype ideas (read more).
Confirmed Meta will add Ukrainian/Russian to the language switcher soon (read more) and discussed safe approaches to video codec/transcoding handling (read more).
Drove multiple localization/AI threads: Meta language support request (read more), Mistral translation image loss troubleshooting (read more), and AI triage scope questions for DMs (read more).
A Zenless Zone Zero “Inter-Knot” inspired UI theme — Monikas showed off a striking custom theme concept, with Lilly suggesting it be reposted to the proper theme category once a repo is ready (read more).
#Community_Building
How to grow a Discourse forum without a product/service behind it? — haydenjames described the classic “founder-as-primary-engine” problem (4 years in, still driving a large share of activity) and asked what actually moves the needle for pure-interest communities; responses stressed consistency, SEO, and accepting the 99-9-1 dynamic (read more).
Composer wording confusion: “Discard your post?” when you only meant cancel editing — RGJ highlighted a long-running papercut where the UI asks “Do you want to discard your post?” even when you’re merely exiting edit mode (and sometimes even with zero changes), proposing clearer “Cancel edit” / “Discard edits” language (read more).
#Feature
Auto-detect or reject VP9-in-MP4 uploads (iOS Safari playback failure) — shortmort37 reported “silent” iOS failures when users upload MP4 files that are actually VP9, and suggested rejecting, warning, or transcoding. Falco pointed to Discourse Video Stream and discussed the tricky security/performance trade-offs of safe local transcoding, possibly as an opt-in plugin (read more).
Images missing in translated posts when using Mistral (aicontent-localization) — a translation regression was narrowed down to model behavior: upload:// image links were not consistently preserved by Mistral Small, while switching to Mistral Large resolved the issue, reinforcing that prompt-following fidelity can vary significantly by model tier (read more).
Category security permissions reset when re-parenting categories (with simplified category creation enabled) — Moin provided a detailed repro where changing parent/subcategory relationships wipes carefully set security rules and re-enables everyone posting. The report explicitly ties to the setting/topic “Enable simplified category creation” (read more) and references Enable simplified category creation as a key toggle.
#Site_feedback
Please add Ukrainian or Russian languages to Meta’s language switcher (content-localization) — Denis_Kovalenko asked for Ukrainian/Russian on meta.discourse.org itself; Falco confirmed it’s planned for early next week and expects the current translation model to handle it (read more).
Meta category posting restrictions may have been unintentionally loosened — in the collaborative “content gardening hub” experiment thread, Moin noticed category descriptions and/or configs no longer match expected “only group members can post” rules for plugins/themes/announcements. mcwumbly connected it to the same class of “re-parenting resets permissions” issues and linked it directly to the new repro report (read more).
#Announcements
Testing Boosts on Meta: reactions/likes/boosts convergence and UI clutter — the “Boosts” experiment continued with users arguing that boosts and reactions feel redundant today, while pointing to longer-term plans to unify these feedback affordances; several UI decluttering concepts were shared (read more).
#Plugin
ProxyTracer: VPN & Proxy Blocker plugin release — ProxyTracer announced a new plugin integrating the ProxyTracer API to detect/block VPN/proxy traffic with caching and fail-open options, plus configuration details and CIDR whitelisting (read more). The thread also touched Safe Mode concerns, with pointers to settings and recovery flows like log back in as admin after lockout, and general plugin installation docs (read more).
How to tune TL3 thresholds (and find what’s blocking promotions) — Ed_S asked how to choose which trust-level requirements to adjust to reach a desired TL3 population; Moin marked a solution: inspect per-user TL3 requirements and use Data Explorer queries like “find users likely to become TL3” (read more) via this query thread.
Cloudflare + reverse proxy setup causing all traffic to appear as Cloudflare IPs (unsupported-installcloudflare) — a Chinese-language support thread dug into a multi-proxy setup (User → Cloudflare → 1Panel Nginx → Discourse) and why adding the Cloudflare template may not be sufficient when an intermediate proxy rewrites headers. The canonical reference remains the Cloudflare best practices guide (read more) and its template instructions (read more).
Structured data: “Missing field ‘text’ (mainEntity.suggestedAnswer)” after updates — Richie reported Google Search Console still failing schema validation even after updating to a build that was expected to resolve “AcceptedAnswer” issues, referencing the earlier bug topic (read more) and prior context (read more).
Does “AI triage automation” scan DMs between regular users? — Denis_Kovalenko questioned whether “Include personal messages” truly covers user-to-user DMs, citing real moderation-risk scenarios and asking if this is a limitation or intentional behavior (read more).
Falco confirmed Meta will add Ukrainian/Russian to the language switcher soon, responding positively to the localization request in #Site_feedback (read more).
Falco weighed in on safe handling of incompatible VP9 uploads in #Feature, pointing admins at Discourse Video Stream while noting that local transcoding has security/CPU abuse risks and may be best offered as an opt-in plugin (read more).
mcwumbly acknowledged and triaged a regression where category security settings reset during re-parenting, thanking Moin for the detailed steps and confirming it will be investigated (read more).
mcwumbly connected broader Meta configuration drift (lost posting restrictions in certain categories) to the same class of category re-parenting issues, linking back to the new bug report and committing to fix the underlying problem (read more).
May your edits be clearly “canceled” (not “discarded”), your boosts stay uncluttered, and your translations keep every last upload:// image link intact.
elmuerte published a new Ko-fi integration plugin that can reward donations with badges and group memberships via webhooks, plus notes about currency handling and anonymization hooks (read more; install guide reference: read more).
ars18 introduced Discourse MiniMod, a plugin for “organizer-like” powers (managing categories/tags/topics) without granting full moderator access, building on category group moderation (read more).
The ProxyTracer VPN/Proxy blocker thread continued with operational guidance: safe mode isn’t helpful for diagnosing it, so the author added steps for disabling via Rails console and clarified how safe mode access changes when “Enabled for All Visitors” is on (read more).
In Discourse Suggested Edits (experimental), sam confirmed a requested piece isn’t implemented yet and will be added, while others asked for category-selection ergonomics (top-level vs subcategories) (read more).
Two Data Explorer (data-explorer) papercuts landed back-to-back: one report shows the UI refusing queries that contain semicolons even when they’re inside quoted strings (read more), and a second report shows double HTML escaping in output (“Fish & Chips” instead of “Fish & Chips”) indicating a display-layer issue rather than SQL (read more).
A structured data issue was flagged as Missing field text in mainEntity.suggestedAnswer, and davidb replied that the team is investigating and will update soon (read more).
Mobile/editor UX remains under scrutiny: one topic was moved into bugs because users reported being unable to exit editing a post (at least on the mobile web) (read more).
Tablet workflow trouble: an iPad user reported they can’t scroll the topic while the reply composer is open in DiscourseHub, making quoting mid-reply awkward (read more).
A user reported a puzzling bottom-left overlay with “dots and lines”; after some misdirection about sidebar gadgets, bryce explained it’s likely a sidebar footer fade gradient artifact and provided a CSS variable override to disable the fade (read more; related: Sidebar Theme Toggle discussion read more).
To remove the fade: --d-sidebar-footer-fade: transparent; (read more)
The Testing Boosts on Meta conversation kept digging into what boosts are for: Canapin argued likes/reactions help the community discover valuable posts, while boosts may be more author-centric, proposing different default visibility for authors vs everyone else (read more).
“Clearing advice doesn’t actually clear it” gained traction when a contributor opened a PR to let admins ignore select problem checks properly, plus a dashboard tab to review/undo ignores (read more).
An admin asked whether AI triage automation (automationai) can scan regular-user DMs when “Include personal messages” is enabled; RGJ stated that it does (and asked how the reporter determined it wasn’t scanning) (read more).
In a solved thread on tuning TL3 thresholds (trust-levels), mcwumbly shared that meta reduced TL3 caps (topics viewed cap and posts read cap), based on learnings from a “who is likely to become TL3” query, and noted work is underway to roll out site-setting defaults more methodically (read more; referenced query topic: read more).
A French-language support question asked for a better way to notify all “Going” participants when an event is cancelled (calendar-and-event), pointing out manual PM tagging doesn’t scale; discussion centered on possible UI improvements and what “Close event” actually changes in notification behavior (read more; docs context: read more and read more).
In Alternative icons (referencetheme-guides), manuel pointed to Discourse’s lucide-based icon set repo and discussed brand icon mappings, prompting Canapin to suggest the official set should be highlighted more clearly in the original guide (read more).
The Horizon Theme (officialhorizon-theme) thread got an update from chapoi: no new compatibility work is currently planned, and they highlighted a likely conflict around the welcome banner outlet—suggesting configuration changes that might make it work (read more).
In “Claude & Discourse-related development,” new reflections landed on whether AI-generated work changes the migration/build landscape, with some skepticism about overly AI-polished writeups and a preference for more human-looking experience reports (read more).
The “Using dv (Discourse Vibe) to configure Discourse AI in development” topic saw follow-up questions about running multiple dev instances and mirroring a live site in dev behind a reverse proxy (read more).
manuel helped clarify the “official” direction for icon packs by pointing to Discourse’s lucide icon set and asking what improvements might still be needed (read more).
bryce diagnosed the reported bottom-left “artifact overlay” as a sidebar fade/gradient effect and provided a practical CSS override via --d-sidebar-footer-fade (read more).
sam responded in the Suggested Edits plugin thread, confirming a missing piece “isn’t implemented yet” and will be added (read more).
mcwumbly shared internal context about TL3 “cap” reductions on meta and described ongoing work to roll out future default site-setting changes in a more transparent, controllable way for admins (read more).
davidb acknowledged the structured data report about mainEntity.suggestedAnswer missing text, stating the team is investigating and will follow up (read more).
chapoi provided a status update on Horizon Theme compatibility priorities, noting roadmap decisions depend on demand and outlining a likely welcome-banner outlet conflict (read more).
That’s a wrap—may your sidebar gradients stay smooth, your boosts stay meaningful, and your Data Explorer finally serve “Fish & Chips” without the extra &.
sam shipped a small-but-mighty UX improvement: topic-level bookmark controls now surface all post bookmarks from the bottom-of-topic action, making it far easier to find what you saved in long threads—see Easier access to bookmarks.
A new theme component proposal introduces hover tooltips for internal topic links (topic preview “cards” on hover), with early feedback requesting screenshots and preview clarity in Topic Hover Cards.
#Feature
Feedback rolled in on the new Boosts concept: concerns about “visual flooding” on mobile at higher boost counts, plus suggestions like collapsible display and quoting UX, in Some ideas about discourse-boost plugin.
A CSS/layout troubleshooting thread: a navigation bar wraps awkwardly, and chapoi suggested white-space: nowrap; (and possibly overflow handling) in How can I fix this spacing issue?.
Users disabling translations report that the setting “comes back” after a while; today’s key detail is that it currently persists in local storage for 30 days, and a change is in flight to persist per-user across devices—see User disables translations, but they keep coming back.
RSS consumers found that exclude_tag works on /latest.rss but not on category feeds, with a confirmed workaround and a core fix queued—full repro steps in Exclude_tag does not work in category RSS feeds.
A localisation regression report: anonymous users visiting with ?tl=[lang] see inconsistent language across topic lists and inside topics, despite the UI showing the selected locale—recorded with a screencast in Localisation bug for anonymous users with ?tl=[lang].
A long-running plugin thread hit a breaking change: Topic Ratings UI vanished due to widget leftovers after a modernization effort; the thread includes analysis and a proposed fix path in Topic Ratings Plugin.
#Self-hosting
A (very) large VPS sizing question sparked discussion about whether huge NVMe allocations are necessary, and whether the question is Discourse-related; the context includes running Discourse plus other services—see 请问有使用netcup root server的么?.
#Nested Replies Testing
Nested replies UX exploration continued: a user discovered “Pin” behavior differs between nested vs flat mode, and the answer is that pinning is currently nested-mode-only—see 发现了在Topic中 Pin 的功能,这是只有在嵌套模式下才可以使用么.
Plugin/theme author fatigue surfaced in the ongoing template deprecation conversation: a plugin maintainer asked how to responsibly sunset plugins without breaking downstream users, and david outlined safer paths (marking broken/unmaintained, archiving, enabling forks)—see Deprecating .hbs file extension in themes and plugins.
sam shipped a bookmarks UX improvement and then immediately dug into mobile edge cases around indicating “post bookmarked vs topic bookmarked” in Easier access to bookmarks.
Yesterday, Meta got easier to navigate (hello, bookmark shortcuts), learned to smile in more languages (localized emoji aliases), and kept sharpening the theme toolkit—one Lucide stroke at a time.
supermathie asked clarifying questions about what “private topics” meant in practice, and later requested better postmortem details for future readers in the same thread.
Moin flagged inconsistent plugin availability notes and also called out outdated plan naming in official plugin banners in a site feedback report.
tknospdr hit a scary “ticket visibility” surprise using the #private-topics workflow; the root cause ended up being a misunderstanding of “Private topics permitted groups”, and RGJ explained exactly why TL0 users could see everything in the accepted solution (also see the related plugin thread: read more).
API users asked about hiding a post via the API without resolving flags; awesomerobot confirmed the limitation and suggested tuning hide_post_sensitivity as a practical workaround in Hide posts via API.
A Cloudflare proxy setup caused all traffic to appear as Cloudflare IPs in admin views; the thread moved toward “restore real visitor IP” guidance (Apache example shared) in this support topic.
Email operations discussion: separating mail subdomains and moving from POP3 to the newer mail-receiver model came up in Auto-restarting once a day via cron?.
Subscriber automation: hipp0 asked for automatic add/remove of users to groups when subscriptions start/end; Moin pointed out the subscriptions plugin already does this group lifecycle management in Subscriber group automation (plugin reference: read more).
Mobile bookmarks UI got a serious iteration: chapoi proposed reusing the sidebar’s nested dropdown patterns to make bookmarked-post navigation clearer, and sam prototyped it (including multi-level menu concerns) in Unable to tell “post” bookmarks exist in footer on mobile.
Topic split “small action posts”: a request suggested the display text should survive topic renames more predictably (or rebuild like oneboxes do), explored in Link in “Split this topic” mini post.
Backups UI anxiety: admins sometimes see “no logs yet” even when the backup succeeds, raising concerns about failure-state observability in Backup process page keeps saying “no logs yet”.
Calendar integration fix (calendar-and-event): Google Calendar was using the webcal URL as the “Calendar Name”; Falco shipped a core fix using X-WR-CALNAME in this bug report.
Theme component update behavior: .discourse-compatibility is honored on install, but not reliably re-checked on subsequent updates; RGJ described a painful uninstall/reinstall workaround and requested rollback-aware updates in Theme (component)s do not look at .discourse-compatibility on update.
#Plugin
Geo-blocking enhancement: a contributor proposed an IP allowlist feature, and RGJ welcomed it with a performance constraint (avoid extra DB calls per request; use lazy-loaded cache) in Geo Blocking plugin.
#Site feedback
Official plugin topic banners appear to have outdated/inaccurate “available on all hosting tiers” notes after pricing/tier changes; examples were collected (including plan name drift like “Standard” vs “Pro”) in Inaccurate plugin availability notes on meta with related plugin topics cited: Math, Cakeday, Solved, Yearly Review, plus an older banner example in Advertising.
Helped untangle conceptual confusion around “private topics” vs PM/group inbox workflows, and later pushed for a more useful postmortem for future readers in Sudden realization about issue with Ticket System.
Noted that the calendar fix should also satisfy Outlook’s expectations for X-WR-CALNAME in the calendar bug thread.
Yesterday’s vibe: half the forum was polishing UX edges while the other half was doing “PRs on our brains” to fix configuration mix-ups—may your bookmarks be discoverable and your private topics stay private.
A couple of “where the discussion energy went” quick links (busiest/most-referenced threads):
Boosts feedback continued in read more, Meta’s redesign/Blocks API discussion kept evolving in read more, and plugin/docs clarity came up again in read more.
Interesting Topics
#Announcements
mcwumbly and jordan.vidrine jumped into the ongoing debate around Boosts—with concerns about “low-signal” reactions, moderation implications, and whether “fun” belongs in serious communities—while emphasizing feature autonomy and admin control read more (plus moderation notes read more).
Calendar subscription URLs got a strong +1, but also feedback on discoverability (put the subscribe entry point closer to the calendar UI) and concerns about “corporate links/logos” for communities focused on digital sovereignty read more. (Related: event creation flow was referenced as context read more).
#Site feedback
Confusion around plugin availability/docs sparked a practical suggestion: link “availability” callouts directly to the canonical plugin comparison table (and handle anchors/scroll offsets). derek confirmed scroll margin improvements landed read more. (Related context: Staff Alias plugin availability edge cases were raised read more).
The Meta branded theme + redesign thread continued: manuel clarified how the Blocks API differs from Plugin Outlets (frames vs insertion points, more predictable layouts, centralized conditional logic) read more, while others highlighted spacing/density concerns and shared CSS experiments read more.
Category organization tweaks revealed a UX oddity: muted categories may display without their descriptions, raising the question of whether it’s intentional or an oversight read more.
A new technical deep-dive unpacked how upload-heavy backups led to 377GB of unexpected disk usage and ext4 hardlink headaches—earning appreciation for “less marketing, more engineering story time” read more.
#Theme component
A brand-new theme component shipped: Customizable Print to PDF Button, aiming to provide a cleaner per-topic print/PDF experience (with installation and theme-learning docs linked right in the OP) read more. (Related: stock printing discussion for comparison read more; install guide read more; beginner themes guide read more).
Versatile Banner hit a real-world snag: its default background image is hosted on Imgur, which is now inaccessible in the UK—suggesting a move to GitHub-hosted defaults to avoid “broken out-of-the-box” installs for some regions read more.
Quote Callouts saw a locale-specific runtime error (German translation), and a quick PR fixed it—plus follow-up questions about icon-only / titleless callouts read more.
A long-standing papercut: on mobile, the tag selector can feel “stuck open” with no obvious close affordance; users described dismissal workarounds and asked for more intuitive exit patterns read more.
A broader “mobile-first reality check” opened: the 2026 mobile composer is powerful, but can read as visually overwhelming compared to older, simpler layouts—prompting a discussion about prioritization and interaction design for mobile composing/editing read more. (Related historical reference was cited in-thread read more.)
Translating reading time text in Onebox/preview links surfaced a Crowdin → GitHub workflow detail: emoji/icon handling in locale files briefly broke and was corrected read more.
Structured data/SEO debugging continued: validation improved, but a remaining schema complaint focused on missing fields (like text / datePublished) in mainEntity.suggestedAnswer, and the request was to keep the topic open while the last issues are chased down read more.
A French bug report dug into browser console accessibility/autofill warnings inside category advanced settings—still reproducible even in safe mode—making it hard to tell what’s harmless vs what breaks real settings (like event sorting) read more.
“System flagged old posts as spam?” described a worrying burst: multiple historic posts (even PMs) suddenly queued with inconsistent system messages (including a puzzling Is this post or undefined?) alongside a Pitchfork timeout log snippet read more.
Staged users + default category watching preferences: a self-host admin wanted imported staged users not to watch Announcements until activation, and testing suggested subtle differences between group defaults vs the Default categories watching setting (and when defaults apply) read more. (Related migration background: Google Groups import thread read more.)
mcwumbly helped reframe the “Boosts” concern as a question of community fit and personal/team autonomy, supporting experimentation even when it’s not everyone’s top priority read more. They also engaged on improving plugin availability notes, exploring ways to reduce duplicated “two sources of truth” documentation read more and agreeing a direct link/anchor approach could help read more.
jordan.vidrine emphasized that Boosts are optional, moderate-able, and that “fun” can be a valid product goal—plus noted admin tools to delete problematic boosts/users if needed read more.
ducks published a companion discussion for a technical blog post explaining how a backup process met ext4 hardlink realities (and how Friends became an accidental infrastructure stress test) read more.
gerhard resolved a translation pipeline snag where emojis/icons didn’t survive the Crowdin → GitHub transition cleanly, confirming a fix and updated PRs read more.
davidb acknowledged the remaining structured-data “suggestedAnswer” schema issues and committed to investigating further (with a promise of another update) read more.
chapoi answered a support question in French: who can create chat channels (admins/staff), which then prompted discussion about event-driven channel creation workflows read more.
manuel clarified the rationale and mechanics behind the Blocks API in the Meta redesign effort (frames, stability, and centralized conditional rendering) read more.
derek confirmed a UX polish improvement landed: scroll margin was added so anchored links don’t hide headings under fixed headers read more.
zogstrip looped in the right folks on the reading-time translation issue, helping get it in front of the localization maintainers quickly read more.
Yesterday’s lesson: if Jennifer Aniston can accidentally eat 377GB, your backups deserve a snack plan too.
Lilly kicked off a big reality-check on the 2026 mobile composer experience, calling out intermittent iOS reliability issues (uploads, quoting, dropdowns, freezes) and asking what should be simplified or removed in defaults—prompting awesomerobot to steer the discussion toward actionable “what should we remove?” changes like toolbar behavior, draft/close controls, and tag UI (read more). Related: the “how do I close tag selector?” confusion (read more), a likely-related freeze report when deleting composer content (read more), and praise for the /mobile + /desktop path deprecation and improved auto-switching (read more).
A localization snag was spotted where “Solved” wasn’t translating in a UI string; Moin pinpointed the code location and awesomerobot linked an in-flight fix via PR (read more). This also dovetails with broader “Solved” UI polish conversations in the main plugin topic (read more).
The new “Solved in OP” styling got a small-but-important UX critique: the expand/collapse arrow placement looks like it might close the entire box, and Moin compared it to quote controls as a precedent for header-positioned actions (read more).
In Foundation modernization progress, theme/component developers pushed for clarity on timelines and scoping. jordan.vidrine shared a plan to merge smaller items into core while keeping bigger pieces behind a feature flag, and asked for concrete examples of the “two foundations” pain (buttons were a notable offender) (read more).
“Which Windows versions are supported?” turned into a practical boundary-setting discussion: Discourse follows Microsoft’s support lifecycle, and while Windows XP-era access can sometimes be coaxed via browser forks, Windows 7 users are increasingly hitting hard stops. Falco and others traded real-world options and diagnostics (including TLS suspicion) (read more). Background context: the old-browser support policy shift and minimum Firefox feature requirements (read more).
An OIDC login error affecting the OpenAI developer forum (Discourse-hosted) was confirmed by multiple users; sam escalated the issue, and follow-up indicated it was resolved (read more).
Category-level moderation permissions were clarified: if a group is added as category moderators, every member of that group gets those moderation powers—so create a dedicated group for moderators rather than reusing a broad group (read more). (Original “how-to” reference that caused confusion: read more).
A file-handling support question surfaced: on some instances, clicking .txt/.yaml attachments opens raw text in a new tab instead of downloading. Discussion focused on storage/CDN behavior and content-disposition headers, with a pointer to prior S3 filename/download behavior threads (read more; read more).
After a failed upgrade/rebuild and recovery, an admin reported admin-panel-only sluggishness; Falco pointed out the immediate culprit: discourse-question-answer is deprecated and should be removed (read more).
A new customer reported being stuck at “Almost there… shouldn’t take much longer now” while creating a new hosted site, noting that the commonly-linked workaround “try another browser” didn’t help (and forced multiple account names) (read more). Prior related thread (now closed) referenced by the reporter: read more.
#Site_feedback
A request was raised to include version numbers in feature/bugfix announcement topics to help admins on managed hosting (or anyone not tracking tests-passed) understand when changes will land. RGJ highlighted how heavy plugin/theme stacks make rapid updates unrealistic, suggesting announcements could better connect to release tracking (read more).
#Theme_component
Moin published a tiny but practical component that restores the fullscreen composer toggle on larger touch devices (tablets) where it’s hidden by default (read more). Install/help references: theme install guide (read more) and theming beginner guide (read more).
Maintenance notes landed on the long-running “left side hamburger menu on mobile” component: the migration away from separate mobile/desktop view folders broke some assumptions, and featheredtoast acknowledged it needs updating; Lilly shared a “hacky but works” CSS approach as a stopgap (read more).
A wp-discourse feature request asked for a way to exclude specific Discourse replies from being shown as WordPress comments—ideally via tagging—so divisive/off-topic replies can remain on Discourse without being amplified on the WP front-end. Discussion quickly identified that tags are topic-level, and explored whether a post-level signal (analogous to “Only Import Moderator-Liked”) would work better (read more).
A caching/keying issue was reported: /favicon/proxied appears to return the same image for different input URLs, reproducible on meta itself, suggesting a cache key problem (read more).
Another meta-specific bug report: opening meta sometimes shows topics from 1–2 days ago first, followed by a “new/unread topics” banner that reveals the real latest list; clearing cookies helped briefly but the issue returned (read more).
awesomerobot engaged on mobile composer simplification—framing the discussion around removing/streamlining default UI affordances while noting Meta is a “worst case” because it tests many features (read more). They also acknowledged and linked the fix for the untranslatable “Solved” string (read more), and continued troubleshooting theme-related composer/draft issues in a “reddit-ish” theme thread (read more).
Falco provided clear guidance on Windows support boundaries (tying Discourse support to Microsoft support) and tested real-world workarounds via alternative browser forks for older systems (read more; read more). Falco also helped triage a post-upgrade performance issue by identifying a deprecated plugin that should be removed (read more).
sam escalated the OpenAI forum OIDC login issue through internal contacts, and later follow-up indicated resolution (read more).
jordan.vidrine joined the mobile composer thread with design-feedback coaching and empathy for the complexity of the current mobile UI surface area (read more). They also posted a status update on modernizing Foundation—what can be merged, what stays behind flags, and asked for concrete theme/component breakage examples (read more).
featheredtoast acknowledged that the move away from separate mobile/desktop views broke assumptions in the left-hamburger theme component, and confirmed it needs updating while discussing a more robust layout approach (read more).
supermathie dug into the “Windows support” thread from a protocol angle, asking whether failures might be due to TLS negotiation and suggesting a concrete diagnostic workflow using SSL Labs’ client test (read more; read more).
Yesterday’s moral: may your composer stop freezing, your “Solved” strings translate on the first try, and your Windows 7 holdouts discover a browser fork before your support inbox does.
Snapshot based on active threads from the last day, including sign-in/sign-up incidents, UX polish reports, and theme/component support discussions (e.g. read more, read more, read more, read more).
Top users (posts / likes in the last 24h):
hellekin: 5 posts / 3 likes (active across product/meta discussions like read more and banner workflow threads read more)
NateDhaliwal: 4 posts / 2 likes (hands-on support + guidance, e.g. signups read more and Discourse ID debugging pointers read more)
Moin: 4 posts / 2 likes (localization/editor workflow threads like read more and automations formatting read more)
A new-site creation/sign-up flow on the free plan briefly got stuck with no DevTools errors; pmusaraj reported a technical issue and later confirmed it was resolved (free-plan) — read more / read more / read more
A Chinese-language report showed “redirect uri is malformed or doesn’t match client redirect URI” when logging in with Discourse ID; NateDhaliwal pointed to regenerating Discourse ID credentials and (if needed) a rails-console reset path — read more / read more / read more / read more
Staged users and notifications: a report noted staged users can’t unsubscribe from “Watching” emails, raising the question of whether staged users should receive notification emails at all (staged-users) — read more
A potential logic inversion: the post translation toggle tooltip text appears swapped (original vs translated states), and may also require refreshes to behave correctly (content-localization) — read more / read more
Localization polish request: the Wrap modal labels “Key” and “Value” appear not to be translatable, with code pointers into core — read more
Event UX expectations: a suggestion that closed events should still appear in /upcoming-events (or alternatively provide a separate “Delete event” action), to avoid hacks like deliberately breaking BBCode (calendar-and-event) — read more
The accepted-answer UI: discussion on whether to move the expand/collapse arrow for an accepted post in the OP (and whether it’s best left as-is) (solved) — read more
Automations editor workflow: progress toward making it easier to enter special formatting like [wrap] and keep Markdown mode behavior predictable (automation) — read more
RTL regression report: on RTL sites, the new-topic title input (#reply-title) stays LTR despite RTL settings and aggressive CSS attempts (composerrtlcontent-localization) — read more
#Feature
Category tooling: an older request resurfaced asking to let category moderators create subcategories, plus guidance on commissioning work (and a pointer to mini-mod tooling as a partial workaround) (category-moderators) — read more / read more / read more / read more
Calendar UX iteration: someone offered to test a JSON-based Create Event form idea as part of “single click activation” experimentation (calendar-and-event) — read more
#Announcements
The “Boosts on Meta” experiment continued to generate broader reflection—hellekin argued that continuing to raise concerns matters, even for “fun” features, to steer future choices in more sustainable directions — read more
#Theme
In the FKB Pro – Social theme, a CSS selector appears to incorrectly constrain private message width when tags are involved, with a suspected :not(.archetype-private_message) fix — read more
#Theme component
Compatibility check: questions about whether the Kanban Board theme component works with the Horizon theme, and whether forking is necessary; early feedback suggested it should work fine (officialkanban-board) — read more / read more
Banner Featured Links: a quick request asked whether the buttons can also be shown inside categories — read more
Banner workflow got tricky post-upgrade: a user who “lost” a banner topic realized it was a workflow mistake, but the thread also captured practical cleanup options like splitting/rewriting history and scheduling topics (pinned-topics) — read more / read more / read more
Related concern: creating global banners from restricted categories remains contentious because staff-only discussion workflows can be disrupted, with continued reliance on a known workaround (pinned-topics) — read more / read more
#Extras
DisHub (native mobile app): the developer posted an update—after delays due to other projects, they’re refocusing on improvements and considering open source options — read more
pmusaraj responded to a live onboarding incident, acknowledging technical issues with new site signups and then confirming the fix was deployed (“new site signups should work now”) — read more / read more
mcwumbly weighed in on theme compatibility, noting the Kanban Board theme component should work pretty well with Horizon — read more
Sign-off: With signups un-stuck and OIDC logins behaving again, may tomorrow’s biggest drama be nothing more than a tooltip that finally points the right way.
In Banner Featured Links, Arkshine helped debug why featured links appeared only on the homepage, pointing to correct plugin outlet usage and suggesting the Developer Toolbar to locate outlets more easily — read more (related: Developer Toolbar component)
Kanban Board compatibility checks continued: Lew_Grothe reported Kanban not working on Horizon, Arkshine suggested confirming attachment + console errors, and nathank shared CSS tweaks for a wider Horizon layout — read more
Discourse Lucide Icons saw troubleshooting around missing Lucide icons; nathank noted the “extra icons” approach is Font Awesome–specific, and pointed to the canonical “replace default SVG icons” guide for adding more Lucide glyphs — read more (related: Replace default SVG icons in a theme)
User Field Prompt feedback focused on UI consistency: Moin suggested updating the component’s screenshots because the rendered layout now differs from expectations, and nathank advocated aligning preference display vs prompt display — read more
nathank released Upcoming Events Extra Buttons, adding configurable navigation buttons for /upcoming-events (including a direct path to calendar subscription preferences and an optional “Create event” entrypoint) — read more (related: install docs here)
In Opening forum goes to topics 1 day ago, not recent topics, NateDhaliwal described Meta “jumping back” to older topic lists (days old) despite showing many “new or updated topics,” while Canapin connected it to a potentially related banner/update state bug — read more (related: topic info not updated when using banner)
Cooked error after translate: cuo_wu reported a post “cooking” / rendering failure after translation; Moin identified malformed Markdown tables as the trigger (missing leading/trailing pipes), and fixing the English table resolved the downstream translations — read more (related context surfaced via a linked plugin topic: Discourse FontAwesome Pro)
New topic title input remains LTR in RTL sites: sam explained why CSS can’t solve the empty-field LTR direction behavior, outlined a markup-based approach (defaulting to rtl until content exists), and linked a PR for review — read more (related: earlier report Titles placeholder in New topic is not RTL)
Cursor jumping around in composer/editor resurfaced: Thomas_Rother shared a screencast of the cursor/viewport jumping; renato noted the report was actually in Markdown mode (not ProseMirror) and requested reproduction on other instances like try.discourse — read more
#Plugin
Telegram Notifications Plugin maintenance questions turned into action: after scavin reported a .hbs deprecation warning, david confirmed the issue is resolved via an upstream change and thanked them for the heads-up — read more (related: the deprecation reference topic mentioned in the warning: deprecation id discourse.hbs-extension)
Topic Ratings Plugin got a pragmatic status update: Arkshine confirmed a PR removing widget references has been merged, restoring compatibility and advising an update — read more
#Announcements
The Testing Boosts on Meta experiment continued to prompt nuanced UX debate: volas described a “screenshot megathread” use case where boosts could help keep replies clean (after trying Q&A-style structuring), while nathank argued boosts risk adding friction vs reactions unless implemented very slickly — read more (related: Question Answer plugin)
Copy button on the same line as the url input on sharing link modal?: Canapin proposed moving the copy button onto the same row as the share URL on mobile to improve reachability and reduce awkward tapping — read more
Rebuilding the Meta Branded theme: Canapin reported a leaderboard date range picker overflowing horizontally on mobile, raising the question of whether it’s theme-specific or a component layout constraint — read more
Several event-related UX threads stayed active, including the semantics of hiding/closing events and recurring event behavior (e.g. “close vs hide” framing) — read more (related: recurring topic creation discussion here, and “Add to Calendar” email/ICS workflow here, plus external calendar subscriptions here)
#Developer-Guides
In Objects type for theme setting, constraints for type: objects came up again: singi2016cn shared an approach for extending settings to support a max limit on the objects array, including an example schema and initializer-level implementation — read more
A Chinese-language login support topic (无法登录什么原因) continued: NateDhaliwal suggested checking whether Discourse ID or local email logins were enabled, and whether SSO might be interfering, after the admin could log in but other users could not — read more
New AI Persona Editor for Discourse drew configuration questions: Alon1 asked how to configure a persona to behave like a “standard” chat AI (similar to claude.ai), specifically without searching Discourse content or being aware of site context — read more
A couple of older “solved” support threads saw new housekeeping concerns around visibility/language and indexing — read more and read more (related banner-topic handling guidance: lost banner topic after upgrade)
sam pushed forward an RTL composer fix, explaining why empty fields default to LTR due to markup semantics and proposing a behavior change (default RTL until input) — read more. They also connected the fix back to the earlier RTL placeholder report — read more
david responded quickly to a real-world deprecation warning in discourse-telegram-notifications, confirming the .hbs extension deprecation was resolved upstream after a user report — read more (context: the referenced deprecation tracking topic is here)
renato helped triage a renewed report of “cursor jumping” in the composer, clarifying the reporter was in Markdown mode (not ProseMirror) and requesting broader reproduction testing across instances — read more
If yesterday proved anything, it’s that Meta can debate Boosts, chase down RTL edge cases, and still find time to ship a “highlight-to-search” power tool—all before the coffee gets cold.
The ongoing deprecation conversation around theme/plugin .hbs templates continued, with manuel arguing that Discourse’s ecosystem needs clear versioning + migration windows rather than “OS-style” stability expectations in Deprecating .hbs file extension in themes and pluginsread more.
A French-language thread dug into “search within two categories at once while staying on the forum page,” with concrete examples using Discourse’s filter-style query syntax shared in Fonction recherche dans certaines catégories. Related context included the “external search redirect” theme discussion in Highlight to Search and examples of alternative search components like Baidu Search and DuckDuckGo Search Suggestions.
The Boosts experiment thread drifted into heavy real-world topics, and jordan.vidrine asked participants to keep the conversation constructive and relevant to the software feature in Testing Boosts on Meta.
“…talking about bombs, water pollution, and erosion is neither a fun nor beneficial way to discuss a software feature…” (source)
A deep dive on event-creation UX and wizard-generated markdown explained why wizard interpolation uses a w prefix for step IDs, plus noted that Locations integration with Calendar & Events still isn’t in a good state, in Single click activation of the Create Event modal. Related “paper-cut” consistency feedback on event participants remains active in Use user names in participants list.
On repeating events, the “going” state not resetting automatically was framed as “planned but non-trivial” (needs storing per-date instances, not just recurrence formulas), with a candid status update in Repeating Event " going" gets not deleted anymore. (See also the broader Calendar & Event UX feedback in Use user names in participants list.)
#Sysadmins
A concise how-to showed configuring canonical host vs aliases to redirect apex domains to www using DISCOURSE_HOSTNAME + DISCOURSE_HOSTNAME_ALIASES in @顶级域名重定向到www.
A second sysadmin guide described redirecting arbitrary subdomains and obtaining wildcard certs with acme.sh + DNS validation (with a reminder-worthy implication: don’t post real credentials), in 任何随机子域名重定向到www.
Mobile composing continued to draw heat: Ed_S shared an iPhone screenshot showing a near-unusable one-line editor, and Moin pointed out the hidden “collapse toolbar” control—prompting the classic “I never would have guessed” response and renewed focus on mobilecomposer usability (read more, read more, read more).
The “show everyone who liked/reacted” request is back in focus: 1101010 questioned why a previously full list became truncated, and awesomerobot explained it as component reuse/consistency—while also confirming it’s now being prioritized as the most voted Contribute > Feature (read more, read more).
Alongside the likes UX discussion, awesomerobot pointed admins toward better “what’s changing” visibility via Upcoming Changes notices—positioning Meta as the closest thing to a public roadmap, and linking the newer change-warning workflow to a dedicated tracking topic (read more, read more).
Sharing modal ergonomics got a small but meaningful mobile polish: the discussion about the copy button placement clarified that the date element isn’t being removed—just reorganized for better readability in post-sharing scenarios (mobile, fixed) (read more).
Review Queue data quality issues remain an ongoing thread: IP details not updating when switching reviewables is now tracked with a fix in flight, but the broader “reviewable insights correctness” theme continues (including odd stale/stuck fields) (read more, read more).
Composer tag enforcement hit a papercut: creating a new topic from a tag page can prefill a tag that’s disallowed by tag-group rules—server-side validation rejects it on submit, but the UI still sets users up to fail (composertagstag-groups) (read more).
Hashtag autocomplete threw console errors in safe mode testing: zogstrip tied one error to a core fix, while Moin noted a second error that may relate to translated tags—keeping this one in “hard to reproduce” territory (hashtag-autocomplete) (read more, read more).
Localization edge-cases are still being chased: anonymous ?tl= behavior and mixed-language topic lists appear related, and nat indicated a likely fix path while cross-linking the reports (content-localization) (read more, read more).
AI translation may be skipping Portuguese entirely: a report shows auto-generated translations for many locales, but not pt—despite being enabled—raising questions about locale handling in the AI translation pipeline (aidynaloc) (read more).
Moderators noticed the flag scoring UI is gone: Lilly couldn’t find the scoring “?” in Review Queue, and awesomerobot confirmed it was removed due to confusion—while the conversation also highlighted that the official moderation docs may now be misleading where they still reference the old UI (read more, read more, read more).
Email-in topic creation reliability came up again: supermathie suggested bypassing brittle HTML→email parsing by generating Markdown from the source system and posting directly via the API, as a more maintainable ingestion pipeline (read more).
Self-hosted mobile push notifications got a “remove the confusing line” moment: Falco linked a change intended to address the documentation/UX friction around push-notifications in Docker setups (read more).
A docs restore/reindex problem appears to be triggered by an interaction with discourse-calendar: nat posted a fix and asked for confirmation, explaining the side-effect that prevented Docs Categories from reindexing after restore (doc-categories) (read more, read more).
Admins reported the “replying to an old topic” warning seemingly disappearing (and customized text vanishing with it), rekindling concerns about silent changes to admin-configured behaviors—plus cross-references to the long-standing “warn on old post” setting discussion and adjacent behavior changes (read more, read more, read more).
#Theme component
Discourse shipped an official safety toggle for whispers: the new Whisper Warning theme component adds a prominent composer control to prevent accidental public replies when staff intended a whisper (officialwhispers), complementing prior UX discussion about where whisper controls should live (read more, read more).
A quick fix landed for Quote Callouts: Arkshine patched a color regression involving “Hide details” so callout styling survives editing/saving as expected (read more, read more).
#Sysadmins
Two closely-related redirect threads (apex → www, and “any random subdomain” → www) surfaced the perennial security/usability tension: guidance touched on root vs sudo expectations in “standard” installs and how instruction wording can confuse admins on hardened hosts (read more, read more, read more).
MiniScheduler maintainers flagged a regression introduced by a previous PR: MiniScheduler::Web broke due to Sidekiq Web extension API changes, and a corrective PR was proposed to restore compatibility (and add missing test coverage assumptions) (read more).
awesomerobot clarified the rationale behind the likes/reactions UI change and confirmed renewed priority on showing the full list (read more); explained why flag scoring was removed from the review queue and invited concrete feedback on what admins used it for (read more); posted a fix direction for stale IP info when navigating reviewables and reduced redundant refetching in insights (read more); and addressed iPad scrolling behavior while the iOS keyboard is up by proposing an exception for tablets (read more).
Falco surfaced a core change relevant to self-hosted push notifications and the “maybe remove that line” docs/UX pain point (read more); helped untangle a translation nuance in a French-language search support thread (what “simultaneous category search” really meant) (read more); and confirmed embed improvements like a floating reply button and a timeline affordance inside embedded comment experiences (read more).
renato acknowledged the mobile composer constraints and confirmed active internal discussion—after merging overlapping reports into the main “2026 mobile composing” thread for better continuity (composermobile) (read more).
nat investigated and shipped a fix for Docs Categories indexing after restore, potentially caused by discourse-calendar side-effects (read more); noted an upcoming fix for a translation-tooltip logic bug, linking it to a related topic-list language issue (read more, read more); connected an anonymous ?tl= localization report to the same underlying issue family and promised follow-up (read more); and resolved a Discourse Livestream access issue by adjusting chat permissions to Trust Level 0, while identifying the “everyone group” edge-case as the likely culprit (read more).
zogstrip confirmed a fix for the generateIconHTML console error in hashtag autocomplete and reported difficulty reproducing the second autocomplete error mentioned by Moin (hashtag-autocomplete) (read more).
supermathie advised moving from HTML emails toward a direct API posting workflow to improve reliability and maintainability for inbound content pipelines (read more).
martin clarified how “Upcoming Changes” warnings should (and should not) apply to legacy experimental site settings—specifically noting that Stable should avoid certain warning/problem-check behaviors going forward (read more).
tgxworld closed the loop on long-requested moderation workflow features by pointing to the commit that implemented approvals requirements tied to group membership, updating multiple feature request threads accordingly (read more, read more).
Yesterday’s vibe: between invisible toolbar toggles, missing flag scores, and a brand-new whisper safety switch, Meta spent the day making sure the right words go to the right place—on the right screen.
Advocated for better “old topic” guidance vs discouraging revival (read more)
Quick link roundup (more active threads you may have missed)
Plugin/category form regressions tied to simplified category creation surfaced in both a new bug report (read more) and ongoing plugin discussion (read more).
A calendar + chat integration regression after Rollup ended with a PR and merge (read more).
Review queue UX proposals focused on grouping items by user (read more).
A new bug report suggests users can’t see invite details tabs due to a likely route/model typo (read more).
Translation/AI localization continued to generate edge-cases, including mixed-language detection (read more) and Portuguese being skipped in dynaloc translations (read more).
Self-hosters compared notes on real-time updates not appearing without refresh (read more) and a UI oddity on the Backups page (read more).
Theme/component maintenance and modernizations continued, including a left-menu mobile component update (read more) and ongoing work modernizing a video upload component (read more).
One long-running self-hosting investigation traced staff-only 502s after login to git partial-clone behavior during “unseen features” checks (read more).
Interesting Topics
#Feature
Thiago_Mobilon shared a detailed, real-world report on running Discourse Comments as a “full app” embed on a high-traffic site—covering server load spikes, caching headers, analytics double-counting, iframe login refresh behavior, polling frequency, and the need for dynamic height; Falco responded with specific diagnoses and multiple fixes queued up (read more).
A long-running request to stop wiping all push subscriptions on logoff got a concrete “done” update from Falco (read more).
A regression affecting saving category settings for multiple plugins (including official ones) was traced to FormKit + enable_simplified_category_creation, with awesomerobot pointing plugin authors to a migration approach and example core PR (read more).
The calendar post event widget lost its chat-channel link after the Rollup build change; a fix was proposed and quickly merged by david (read more).
Tag restrictions messaging in the composer appeared inconsistent (“allowed” vs “not allowed” depending on the search term); zogstrip acknowledged the limits logic needed to be smarter and linked a fix PR (read more).
A self-hosted report that new replies don’t appear in real-time (manual refresh required) raised concerns about MessageBus / polling behavior; initial triage focused on whether a proxy/CDN might be involved (read more).
Users seemingly cannot view invite details tabs (while staff can), and the report suggests a likely controllerFor vs modelFor mismatch in the route logic (read more).
Community members noticed the “you are replying to an old topic” warning is gone; discussion re-centered on Discourse’s preference for durable conversations, with references back to the broader necroposting values discussion (read more, and related context: read more).
A hosted customer reported that remote images started being downloaded and rewritten by system “as of today,” despite exceptions/settings—prompting checks of disabled image download domains behavior and staff logs (read more).
A question about tags on the free hosted plan was resolved quickly: tags aren’t available on free, even if some settings appear in the UI (read more).
A report claimed URL encoding gets altered when using the editor’s link tool, causing 404s; the thread ultimately pointed to reproducibility/version context and ended with the reporter planning an upgrade after testing on try.discourse (read more).
A moderation story highlighted a sharp edge in the review queue: items for the same user can be scattered, leading to accidental over-enforcement; the suggestion was to group queue items by user or at least surface “this user has other items in queue” more prominently (read more).
Free-plan site owners flagged confusing shutdown/read-only messaging when an email suggests you can keep a site alive with activity, but the site appears locked shortly after; rishabh confirmed the team is investigating and will clarify (read more).
#Theme component
Lilly released Discourse Dynamic Sidebar Icon, a lightweight component that changes the sidebar toggle icon depending on open/closed state and allows admin customization via theme settings (read more).
A self-hosted admin shared a theme/plugin-side workaround to force anonymous users to /login (except a safelist of routes), asking for a better way to avoid a “slow redirect” UX on the initial landing experience (read more).
Falco drove follow-ups and actionable fixes around embedded Discourse Comments—covering caching headers, analytics-in-iframe concerns, and performance improvements like native lazy-load support (read more, read more). He also clarified how manual language selection affects translation detection for mixed-language posts (read more) and closed the loop on push subscription cleanup behavior (read more).
pmusaraj confirmed a fix path for the Google One Tap iframe refresh issue affecting embeds (read more) and requested clearer reproduction details for an older WeChat mini-program integration thread (read more).
awesomerobot explained why plugin category settings stopped saving under simplified category creation, pointing directly to FormKit migration patterns and an example implementation strategy (read more).
zogstrip acknowledged the tag-limit UX bug and linked the “smarter limits” fix work (read more).
david encouraged and merged the fix for the calendar plugin’s missing chat link regression after Rollup (read more, read more).
chapoi weighed in on review queue UX by pointing to existing “insights” data as a starting point for improvement (read more).
rishabh responded to concerns about free-plan shutdown messaging and confirmed the team is checking for clarity and correctness (read more).
nat handled a multilingual edge-case in a site feedback experiment (topic title language mismatch) and flagged the UX constraint for internal discussion (read more); she also continued triage on translation/LLM issues by asking which model was in use and pointing to model deprecations as a potential factor (read more).
featheredtoast merged and confirmed updates to the “left-side hamburger menu on mobile” theme component after cleanup work (read more).
Osama confirmed a fix was merged for RTL title input direction issues (new topic title input staying LTR) (read more).
If yesterday taught us anything, it’s that the fastest way to get something fixed on Meta is to ship a PR, toggle the sidebar, and then embed the whole app inside a blog post to see what breaks first.
A few threads did the heavy lifting for discussion volume today, including the open-source statement in read more, ongoing embedding improvements in read more, and plugin/admin workflow friction around category settings in read more.
Discourse publicly reaffirmed it’s staying open source: sam addressed industry anxiety after another SaaS vendor announced closing their codebase, and framed Discourse’s position as choosing “courage over hiding behind a locked door” in the companion discussion: read more.
“Transparency is now becoming exposure.” — context that sparked a nuanced debate about the real security tradeoffs of open source in the AI era (read more).
Related: a shout-out that releases.discourse.org “works and looks amazing now” also surfaced in-thread (read more).
Plugins couldn’t save category settings after the “simplified category setup” flow: staff acknowledged the rollout needed better warning/mitigation and provided a quick workaround via /admin/config/upcoming-changes (disable enabled_simplified_category_creation) while fixes landed (read more).
Related context/expectations were debated in Simplified category setup and follow-ups about what counts as adequate notification and migration time (read more).
AI translations intermittently skipped Portuguese when many locales were enabled: investigation suggests that with ~14 target languages, Portuguese may be skipped due to rate limits/timeouts (but not necessarily due to simultaneous requests), and verbose logging was suggested for diagnosis (read more).
Related: language detection/translation confusion was also recently untangled in a separate thread that ended up being configuration-related (read more).
Free-hosted sites: read-only mode couldn’t be disabled: a report described the UI toggling read-only “off” but reverting on reload; staff identified the system incorrectly forcing read-only due to an internal timeline assumption and asked the OP to retry while they dig deeper (read more).
Related: a timing/timeline concern was cross-referenced here (read more).
#Announcements
New “Ideas” category type makes Topic Voting setup far easier: lindsey announced a streamlined category-creation path that pre-configures voting-related settings for feature-request style categories (read more).
Related: this builds on the long-running Discourse Topic Voting plugin and also connects to requests like “auto self-vote” from topic creators (read more).
#Plugin
New experimental Buffer integration plugin to streamline social sharing: pmusaraj released an experimental plugin that adds “Share to Buffer” from the share dialog/admin wrench, generating a preview and queuing to Buffer channels (read more).
Related: installation guidance references the standard plugin install doc (read more).
#Feature
Embedding: lazy-loading + dynamic height improvements surfaced real-world “too-tall composer” edge cases: in Tecnoblog’s embed experience thread (embedding), work progressed from “native lazy loading via <iframe loading="lazy">” to fixing dynamic height behavior, then to advice on choosing sane embedMaxHeight values to avoid massive layouts when composing replies (read more).
Related: the “TIL widely supported” moment that nudged the implementation toward <iframe loading="lazy"> happened here (read more).
Rich editor feature request: allow <span data-attribute> to survive sanitization: Canapin outlined how inline wraps work today (and where the last character can get cropped), then requested support for <span data-attribute> in the rich editor since it’s supported in markdown but gets stripped in rich text (read more).
Related: this overlaps with ongoing documentation hygiene around allowed HTML lists and where those rules now live (read more).
#Theme component
New “Wikipedia Lookup” component adds tooltip-based definitions via composer wraps: a theme component was published to wrap words/phrases and show Wikipedia tooltips; early feedback asked about mobile behavior and configuring which Wikipedia language/domain is queried (read more).
Related: install instructions (read more) and the beginner theming guide (read more).
Dynamic Sidebar Icon component got refactored with a mobile-consistency toggle: Lilly updated the component to optionally apply the “open icon” behavior on mobile, acknowledging the overlay sidebar behaves differently and admins may want UX consistency (read more).
Related: it was later referenced as a solution idea in a long-running sidebar “hamburger toggle” discussion (read more).
Quoted icons can explode in size due to wrap-to-Markdown conversion: a report shows [wrap=icon] turning into a raw  image when quoted, with inconsistent sizing depending on context (read more).
Related: historical discussion about discourse-icon behavior was noted as existing but not split into its own thread (read more).
A mysterious “topic doesn’t exist” error was traced to a stale ?preview_theme_id= in Chrome: switching locales triggered the message everywhere, but only in one browser; the fix was simply removing the lingering preview parameter from the URL (read more).
RTL/sidebar footer “black bars” turned out to be theme customization, not core RTL: staff reproduced the issue disappearing in safe-mode and provided a simple CSS fix to align the footer wrapper background with the sidebar variable (read more).
MaxMind GeoLite download failing with HTTP 451 (“blocked for legal reasons”): the thread concluded this isn’t a Discourse bug; the account/request was likely associated with a region MaxMind doesn’t serve, and the practical next step is contacting MaxMind support (read more).
Related: deeper MaxMind usage and regional edge cases were referenced from the Locations plugin ecosystem (read more).
Admins want groups to land on Activity/Messages instead of Members by default: a request asked whether the default group landing tab is configurable (globally or per-group), arguing “Members” is low-signal compared to current activity (read more).
sam published Discourse’s open-source stance in response to “AI makes OSS too risky” narratives, anchoring the day’s biggest discussion: read more.
pmusaraj shipped an experimental Buffer sharing plugin for staff social workflows (read more), debugged a locale-switching “topic doesn’t exist” incident by spotting a stuck preview_theme_id (read more), and continued investigating why Portuguese translations might be skipped when many locales are enabled (read more). He also clarified expected behavior around remote images/orphan cleanup windows (read more).
Falco drove rapid iteration on Discourse Comments embedding improvements—embracing native iframe lazy-loading support (read more) and advising on practical embedMaxHeight limits to avoid pathological “giant iframe” UX when threads grow large (read more).
awesomerobot addressed admin/plugin fallout from simplified category creation by recommending the immediate rollback path in upcoming changes (read more), fixed an “invite details invisible” bug with a core patch reference (read more), explained a theme-level CSS remedy for sidebar footer background issues (read more), and pushed progress on improving the site-settings nav UX via a DMenu-based approach (read more).
chapoi kept morale (and momentum) up in the open-source statement thread (read more) and flagged the free-plan read-only issue for deeper investigation by the right folks (read more).
lindsey announced the new “Ideas category” creation flow that makes Topic Voting-based request boards far easier to stand up (read more) and linked it back into the rolling “Current Projects” updates (read more).
martin explained what notifications/admin UI cues existed for the simplified category creation rollout and what additional mitigations might help plugin authors next time (read more), then confirmed fixes were merged (with extra spec coverage) once patches landed (read more).
manuel highlighted improvements to releases.discourse.org in the open-source discussion thread (read more) and resurfaced a promising static archive generator for Discourse as a reference point for anyone needing HTML exports (read more).
supermathie reported a real-time update gap when posts are moved between topics (clients with Topic A open didn’t reflect incoming moved posts) (read more) and clarified that a scary-looking 429 after splitting posts is ignorable because it’s tied to /topics/timings, not the move itself (read more).
jordan.vidrine confirmed a fix for a Foundation-theme vote display regression would ship soon (read more) and outlined the plan to make whisper/reply-type selection clearer via a toggle in the dropdown menu (read more).
If yesterday proved anything, it’s that Discourse can stay open-source and keep iframes lazy-loaded—just try not to let your composer become 7,385px tall along the way.
A practical clarification emerged around 2FA enforcement with external logins: jomaxro confirmed Discourse relies on the external identity provider for 2FA, and cannot enforce 2FA when local logins are disabled—so “enforce 2FA for all” won’t apply in the external-only setup (read more). Related: historical 2FA context referenced via 2FA was added back… and earlier account-linking/2FA tradeoffs in How do I enable Associated Accounts with 2FA?.
A site admin saw the “Diff is too complex to display” message, and zogstrip explained the internal “comparison budget” and hard ceiling that prevents expensive diffs from grinding servers to a halt (read more).
Email notification expectations for end-users vs. admin-controlled defaults came up again: a helpful path was shared for users to find per-account email preferences, plus pointers for admins to set default notification behavior site-wide (read more). Related: deeper reading in Configuring Default Notification Settings for Users and onboarding guidance in Understanding Discourse for new users.
Login-page text customization: Ethsim2 wanted to change “Welcome back” on /login, and both awesomerobot and Moin identified the correct site text key (js.login.header_title) and a workflow tip—press return after searching (read more). Related: a parallel request for “disclaimer-like text on /login” in Add text for /login, and login landing behavior discussion in Disable initial page that re-directs to /login.
A strong UX bug report from Lilly: in the custom sidebar section icon picker, the search field appears but won’t accept typing, forcing manual scrolling for icons; it reproduces on Meta and safe mode (read more).
AI translation/localization reliability: Denis_Kovalenko reported that translated variants are being randomly skipped across locales (not only Portuguese), and that title/body may translate inconsistently; Moin pointed to hidden settings docs, and staff enabled verbose logs to gather more signal (read more). Related: how-to reference for hidden settings in Using hidden site settings.
A small free-plan hiccup: the “Cannot disable read-only mode on Free Plan” thread saw confirmation that the immediate problem had cleared for the reporter (read more). Related: broader UX concerns about messaging/timelines in Misleading free plan shutdown timeline.
“Why do some sites show a landing screen before /login?” turned into an intentional-design discussion: zogstrip asked why the homepage is edge-cased, and pmusaraj explained the value of a community “front door,” plus noted a narrow bypass when there’s only one external login method (read more).
A cautionary sysadmin tale: flushing Redis can “fix” a stuck “Updating” indicator, but RGJ warned that FLUSHALL also nukes sessions and Sidekiq jobs—making it a last-resort “burn the building to kill a mouse” option (read more).
#Theme-component
The “Wikipedia Lookup” theme component got a useful enhancement: NateDhaliwal added a setting so admins can swap the default Wikipedia base URL (e.g. use Spanish Wikipedia), while noting that extending to arbitrary wikis would require API-path configuration (read more).
Welcome-banner sizing guidance was clarified: awesomerobot distinguished between the “Welcome Link Banner” theme component and the built-in welcome banner feature, giving recommended minimum image sizes for each (read more). Related: the referenced component itself: Welcome Link Banner.
Discourse MCP momentum continues: someone asked about HTTP/SSE streaming compatibility for use as a Claude connector, and Falco pointed out that HTTP transport is already supported (not only stdout) (read more).
In the “Discourse is Not Going Closed Source” thread, community members kept the broader OSS conversation grounded, challenging the “open source is dead” framing by pointing out how deeply modern stacks still depend on OSS foundations (read more).
A recurring question (this time in Chinese): “Why isn’t there an open-source Android app?”—the thread revisited the historical “whitelisted app,” and noted how PWAs plus native PWA notifications on iOS/Android have reduced the need for a dedicated wrapper app (read more). Related: prior art in Is it possible to convert a forum into a real app? and earlier ecosystem discussion in Discourse sites in Playstore.
#Announcements
The “Modernizing the Foundation theme” thread saw a quick check-in about whether visual/button changes were confined to the meta theme layer; the answer: it’s on Foundation itself, with examples of contrast states shared (read more).
jomaxro focused on clarifying hosted-plan identity/2FA behavior and reducing confusion from outdated documentation:
Confirmed the current stance on credit cards for trials (not required by default, but may be requested under abuse conditions) and cleaned up old references that implied otherwise (read more).
Corrected and finalized the explanation of Discourse ID’s OAuth2/SSO behavior and the limitation around enforcing 2FA without local logins enabled (read more).
awesomerobot helped with admin UX details and login customization:
Archived an old topic to prevent confusion during the “trial credit card” discussion (read more).
Provided concrete welcome banner image sizing guidance for both the built-in banner and the theme component (read more).
Pointed to the correct site-text key for editing the /login “Welcome back” header (js.login.header_title) (read more).
zogstrip split time between internals and login-flow UX:
Explained why the diff system refuses “too complex” comparisons by enforcing a computation budget (read more).
Flagged the homepage login redirect as an edge case worth reconsidering, then looped in pmusaraj for background on why the landing screen exists (read more).
pmusaraj provided product reasoning on the login landing page and documented the narrow case where Discourse skips the intermediate screen (single external login) (read more).
Falco clarified MCP capabilities, emphasizing that HTTP transport is already supported for Discourse MCP integrations (read more).
jordan.vidrine briefly checked in on scope/rollout for Foundation theme modernization changes (“is this only on this meta theme?”) in the ongoing announcement thread (read more).
If you’re tempted to “just flush Redis” to fix a weird admin status today, remember yesterday’s wisdom: don’t set the whole building on fire just to catch the mouse (read more).
In ongoing feedback on boosts, cuo_wu suggested it should be easier to find (or highlight) your own boosts when the list grows large in Testing Boosts on Meta, while Andrew_Rowe shared that boosts have become a useful “non-reply +1” for them personally. read more
A self-host admin issue where the UI believed an update was still in progress prompted troubleshooting around rebuild/update workflows in Redis Flushall; the thread contrasted CLI updates with admin-UI updating, including a report that the UI update flow worked smoothly on mobile for one user. read more
A translation customization question resurfaced around what “global replace” can and can’t touch: Moin clarified the limits of UI-translatable strings (vs. backend/untranslatable labels) and pointed to the standard guide in Customize text in Discourse, while the plugin thread continued in Globally replace translations.
A hosted-pro onboarding workflow question asked how to segment users by private custom fields and then message them (1:1 DMs at scale, or at least filter them for outreach) in New user filter by custom field and contact. read more
A structured-data / schema issue remains partially unresolved: after a batch was reported fixed, Richie still sees hundreds of “missing field text” (and answerCount) warnings, and davidb asked for affected URLs to investigate edge cases in Missing field ‘text’ (in ‘mainEntity.suggestedAnswer’). read more
WP publishing surfaced a tricky “Gallery-only post” behavior: when a WordPress post contains only a Gutenberg Gallery block, the “Show Full Post” content on Discourse may get replaced by footer/GDPR-plugin content instead of images; angus worked through repro details and caching considerations in Pubblicazione post con galleria WordPress su Discourse. read more
A “no API key” Python wrapper for reading Discourse data was shared, then immediately raised a terms/automation concern: MaukWM posted the library details in Interact with discourse from Python?, and Moin cautioned that automated access may violate typical forum terms for non-browser automation. read more
nat dug into why AI translation might skip certain locales (including content size vs. model context windows), and shared model-quality guidance for translation workloads in AI Translation skips Portuguese (pt) locale.
If yesterday taught us anything, it’s that Discourse admins can debate open-source philosophy, chase runaway mobile modals, and still find time to troubleshoot WordPress galleries—all before Portuguese translations finish cooking.
A lively thread on improving how users can view all reactions on a post continued, with chapoi previewing an almost-ready fix and iterating on spacing/UX details in “Ability to display all the likes/reactions on a post” (read more, read more).
A thoughtful feature request proposed “post approval by a future self / trusted friends” for users experiencing episodic unwellness, exploring what delayed self-approval could look like in Discourse moderation workflows (read more).
A new request asked for a setting to disable local signups while still allowing OpenID Connect registrations, including notes on how users can bypass UI affordances and ideas for approval scoping (read more, plus related discussion on redirect UX read more).
“Blocking Tor Users by Default” resurfaced with a pointer to a dedicated anti-proxy plugin as an alternative approach to blocking Tor/VPN/proxy traffic at signup/login/sitewide (read more, plugin topic: read more).
A question about changing the default landing page for Groups sparked suggestions to use sidebar-driven navigation and group-specific homepages; nathank recommended a theme component approach (read more), with related references to Messages section for sidebar (read more) and Custom homepage for groups (read more).
A user trying to verify a *.discourse.group subdomain in Google Search Console got directed to the existing how-to guide, with follow-up clarifying how the token-based method should still apply—and a reminder to avoid gendered honorifics when unknown (read more, guide: read more, follow-up: read more).
A support thread on filtering new users by custom fields dug into plan limitations (e.g., Data Explorer / automation availability), privacy implications of exposing searchable fields, and API-based alternatives (read more, related: #TAG user fields guide read more, automation plugin read more, and API visibility discussion read more).
“Help enabling a hidden site setting” (for ads/AdSense trust-level gating) walked through locating the hidden setting in code and changing it via Rails console, referencing the canonical hidden-setting editing guide (read more, guide: read more).
A performance/admin thread continued with system memory and worker configuration details in “Redis Flushall”, helping narrow down resource constraints and tuning context (read more).
A previously reported realtime-update issue received confirmation as fixed on a recent latest build, including a GitHub compare trail to identify the likely resolving commit (read more).
“Interact with discourse from Python?” revived an interesting policy discussion: whether client libraries that hit public API endpoints meaningfully enable ToS violations, with david noting even official tooling can read public data without keys and that rate limits/bot protections still apply (read more).
A bug in the Backups page UI (breadcrumb separator behavior) looked like a race condition; zogstrip shared a PR aiming to better detect when to show/hide the separator (read more).
An SSO edge case was clarified: an OAuth2 provider URL containing # is a protocol violation (fragments are client-side only), explaining why it causes issues (read more).
A regression prevented searching icons by name in the custom sidebar section configuration modal; a fix was linked via a core PR (read more).
Schema/SEO troubleshooting continued in “Missing field ‘text’ (in ‘mainEntity.suggestedAnswer’)”, with additional Google Search Console examples gathered to help isolate the structured-data issue (read more).
A new UX report proposed several improvements to the mobile reviewable queue (alignment issues, spacing, long titles consuming vertical space, textarea sizing, and overall layout consistency) (read more).
Another mobile UX issue highlighted how post history modal buttons are truncated due to lack of space, suggesting multi-line labels and reclaiming unused modal height (read more).
#Site feedback
Tag housekeeping came up again in “Meta tag cleanup”, where users noted restricted/internal tags appearing in the public tag picker and debated whether those should be scoped to reduce clutter for regular users (read more, read more, read more).
A request proposed introducing a dedicated tag for post revisions / history view discussions to make searching and grouping these UX threads easier (read more).
#Self-hosting
A self-hosting question asked whether there’s a supported Rails-console method to mark an alternate email in user_emails as confirmed (without changing the primary email) to prevent duplicate accounts when OpenID Connect returns the same email (read more).
chapoi pushed the reactions/likes UX toward a better final form—previewing what’s live on Meta and acknowledging “tiny tweaks left” in “Ability to display all the likes/reactions on a post” (read more, read more, read more). chapoi also weighed in on the “private tags visible in the picker” discussion in “Meta tag cleanup” (read more, read more).
david contributed a pragmatic take on public API access and responsibility in “Interact with discourse from Python?”, noting that even official tooling can access public data without keys and that unauthenticated bots face stricter rate limits (read more).
sam clarified the root cause of an OAuth2/SSO issue: # fragments in provider URLs are a protocol violation and won’t work as expected in server-side processing (read more).
zogstrip investigated a breadcrumb separator “race condition” on the Backups page and linked a core PR aiming to resolve the show/hide logic (read more). zogstrip also pointed to a PR fixing icon-name search in the sidebar configuration modal (read more).
supermathie asked a deeper identity/security question in “Discourse ID and 2FA”: whether an IdP can pass MFA context/assurance to the service provider in a way Discourse could use for enforcement decisions (read more).
manuel posted an implementation note in the Meta redesign thread, explaining that an icon update should now be merged into the Lucide Icons component and appear after updating it (read more).
If yesterday taught us anything, it’s this: may your reaction popovers stay compact, your breadcrumb separators behave deterministically, and your tag pickers remain blissfully uncluttered.
RGJ shipped a new admin-focused plugin drop: Communiteq Power Tools — read more
Lilly solved a tricky “tables are almost wide enough to scroll” formatting edge case with a clever workaround — read more
Moin + NateDhaliwal explained how “custom category icons” are typically just custom emoji selected in category settings — read more
darkpixlz confirmed a real-world DiscourseID setup gotcha (Cloudflare template in app.yml) — read more
Canapin continued to stress-test Meta’s mobile UX polish with fresh reports — e.g. spacing quirks in topic progress/outlets — read more
Interesting Topics
#Feature
Reactions got a major usability win: the new UI can display all likes/reactions on a post, including quick fixes for mobile scrolling and consistent placement (“all displays on the left is the new normal”) — read more (see also the related “pin reactions in one place” request now bundled: read more, plus earlier “Discord-like reactions viewer” chatter: read more)
Tecnoblog’s embed feedback highlighted mobile form issues (width overflow + UI overlay), and staff confirmed multiple rapid follow-ups/fixes to the new commenting experience — read more (related: the broader “full comment system embed” announcement thread continues to evolve — read more, plus dark-mode context: read more and the older embed-dark-mode discussion: read more)
A thoughtful feature idea asked whether communities could support “post approval by your future self / trusted friends” for members with episodic unwellness—an interesting moderation + wellbeing intersection — read more
A long-running “Index File Contents for Search” idea got fresh implementation thinking (OCR, Apache Tika, LLM-based extraction), reviving the practical path toward attachment indexing — read more
#Plugin
Communiteq Power Tools launched as a consolidated “small enhancements” plugin (including exposing otherwise hidden settings), positioned as especially useful for hosted customers who need to keep plugin count low — read more (and it explicitly ties into prior “force specific users through moderation” needs: read more)
The official Social Share theme component got a proposed enhancement: configurable popup sizing via an extra parameter, to better fit real-world share widgets — read more
#Nested Replies Testing
Meta’s nested replies experiment surfaced navigational confusion (“where did Flat view go?”), with staff noting a missing “Parent post” link and reiterating why non-linear discussion is inherently harder to follow — read more (and the classic context piece was re-linked: read more)
A nasty self-hosting paper-cut—stuck web upgrade flags persisting after rebuilds—received upstream fixes in Docker Manager + Discourse Docker, aimed at preventing rebuild-survivor states — read more
Translation/localization saw multiple fixes land: one bug where a topic list in German left a single topic untranslated was patched and deployed — read more (plus the related ?tl= locale resolution bug fix pointer: read more)
Mobile UI bug: the “Add user to list” modal could appear above the viewport, with a fix proposed and later merged (with caveats about iOS fixed-modal pain) — read more
Email UX bug report: when “Private email” is enabled, outgoing emails can omit a usable topic link, leaving recipients staring at /t/277 with no context — read more
A serious chat-performance investigation suggested reply-created tracking bloat can lead to Pitchfork timeouts; early testing claimed big perf gains via query changes — read more
Formatting help: users wanted to “force tables to scroll horizontally”; the practical answer was to prevent awkward wrapping by inserting non-breaking spaces in headers/cells — read more
“How do I add custom category icons in the sidebar?” was answered with the canonical approach: upload custom emoji, then select them as the category icon — read more (reference doc: read more)
#Announcements
Category moderation got a significant upgrade: more flexible category-level topic/reply approvals, including “everyone except these groups” and “no one except these groups,” surfaced in a new Moderation tab in category settings — read more
Bulk moderation tooling improved: you can now pin or un-pin topics in bulk via Bulk Select → Bulk Actions — read more
#Site feedback
A performance suspicion: disco-toc may slow rendering on very long, heading-heavy posts (safe mode dramatically improved load time), prompting investigation into theme/component interactions — read more
Meta category organization feedback continued: concerns included parent vs subcategory posting rules, long category-path autocompletion, and mobile truncation pain — read more
zogstrip confirmed the reactions viewer mobile scroll issue was already fixed, and also dug into whether restricted tags are improperly visible to unauthorized users — read more, read more
Falco actively shepherded embed/comment UX fixes and follow-ups (including confirming fixes and asking for updates), and weighed in on nested replies complexity + navigation gaps — read more, read more, read more
awesomerobot tackled multiple mobile/UX papercuts: a fix attempt (and merge) for a modal positioning bug, plus CSS/UX refinements across mobile views and explaining why some “empty space” is reserved to prevent page bounce — read more, read more, read more
nat shipped and confirmed localization fixes (including deployment verification), fixed a “translations preference won’t stick” issue, and clarified current limits around AI-generated tag translations — read more, read more, read more
pmusaraj helped untangle confusion around third-party hosting/support boundaries in an email-delivery support thread, and gave a detailed standards-based explanation of what it would take for Discourse ID to transmit an MFA/2FA signal (OIDC vs OAuth2, and edge cases) — read more, read more
lindsey published two admin productivity improvements: flexible category approvals and bulk pin/unpin actions — read more, read more
markvanlan clarified that the “Flat view” toggle in nested replies testing is now controlled via a hidden group site setting and is staff-only by default — read more
manuel kept morale high during Meta theme iteration, joking that fixes arrive via “synchronous magic” (just think about it) — read more
chapoi clarified the “new normal” for reactions positioning, confirmed a related reactions-placement request was bundled into the same work, and advised safe-mode testing for mobile overflow issues — read more, read more, read more
supermathie set expectations (firmly) about what Meta can and can’t support for third-party hosted Discourse installs, and raised an email usability bug about missing topic links when “private email” is enabled — read more, read more
If today’s Meta had a theme, it’d be: think very hard about a bug, ship three fixes, then argue (politely) about where the reactions button should live.
In the last 24 hours (as seen across active threads like the refreshed homepage rollout in #Site feedback, new plugin announcements in #Announcements, and ongoing UX/support troubleshooting in #Support):
Some of the busiest conversations today clustered around the Meta homepage blocks work (read more), nested replies discoverability (read more), and practical admin tooling improvements like Data Explorer charting (read more).
Interesting Topics
#Site feedback
derek shipped an update to the Meta Branded theme homepage, expanding the “dashboard-like” experience with Events, Hot topics, contributor callouts, and a “Watch & Listen” block; feedback rolled in on content prominence and preference interactions, plus an early mention that this is powered by the emerging Blocks API (read more, and the Blocks API background in read more).
Category reorganization friction continues: folks discussed how deep subcategory prefixes can make #hashtag linking and search feel heavier (e.g. remembering parent paths), with pointers back to the request to make inline subcategory links less verbose (read more, plus the UX thread here: read more).
#Announcements
Data Explorer got more charting options and smarter “shape-based” chart auto-selection; admins asked when it would hit hosting, and were told it should arrive with the next deployment cycle (read more, and related plugin reference: read more).
Topic Voting received multiple UX/feature refinements: a sticky-in-header vote button while scrolling, post-vote notification prompts, plus improvements around access and “Hot” sorting to keep ideas categories lively (read more, with plugin background: read more and the “ideas category” helper: read more).
#Nested Replies Testing
The long-running nested replies experiment surfaced practical navigation pain points: consolidated notifications and “unread counts” can feel disconnected from where the unread content actually is, and multiple people debated whether nested reading is inherently “branch-focused” vs. Discourse’s usual “read-it-all” culture (read more, and a concrete unread/discoverability complaint here: read more).
A mobile UX bug/awkwardness sparked redesign ideas: a very long button label in the user deletion flow led to a proposal to reframe deletion as a dropdown-first action, with confirmation after selection to improve clarity and layout robustness (read more).
A real-world onboarding snag: on narrow mobile screens, anonymous visitors may miss “Sign up” unless they enter the login flow; the suggestion was to expose auth actions in the hamburger/sidebar, reviving an older thread and prompting a concrete theme-component solution (read more, older reference: read more).
#Theme component
A new component, Discourse Mobile Auth Button, replaces the mobile “Log In” label with a clearer combined “Sign Up / Log In” CTA for anon visitors—positioned as a lightweight fix for the “where is signup?” confusion on phones (read more).
#Site Management
A new how-to guide shows how to auto-tag topics using AI by combining Discourse AI triage with Discourse Automation—covering prerequisites, agent prompt patterns, and configuration considerations (read more, with core prerequisites: Discourse AI read more and Discourse Automation read more).
#Plugin
A new plugin, discourse-to-markdown, proposes serving forum pages as Markdown via Accept: text/markdown or a .md suffix—positioned as a practical way to reduce LLM token spend and simplify downstream ingestion (read more).
A self-hosted admin hit a “you’re out of date” loop but couldn’t complete updates from the UI; responders emphasized updating Docker first, being patient with “stuck-looking” progress, and escalating to command-line/vendor support if the web updater doesn’t move (read more).
A potentially severe editor/data-growth bug report: double-escaping underscores in image alt text can explode raw post size on each edit until posts become uneditable due to length limits—flagged as likely regression and under investigation (read more).
A configuration mystery: a site’s logs were still being pushed to an old S3 destination even after migrations and app.yml changes, prompting questions about where that legacy target is persisted and how to fully redirect logging (read more).
A developer building a headless Next.js frontend shared gaps in the REST API experience: inconsistent pagination patterns, mixed “topic + stream” response structures, and a desire for cleaner post-stream endpoints or flags for normalized frontend state (read more).
API draft deletion via key auth returned not_found; the workaround suggested passing ?username= explicitly, and a fix was proposed to make API username fallback behavior more consistent (read more).
derek led the rollout (and rapid fix) of the refreshed Meta homepage experience, including clarifying how logged-in homepage preferences affected what people were seeing and noting the underlying implementation direction via the Blocks system (read more and the follow-up fix note: read more).
awesomerobot drove several UX/product conversations: positioning the Meta homepage changes as part of broadening Meta beyond dev-only audiences (read more), offering concrete UI design alternatives for user deletion flows (read more), and engaging on subcategory hashtag verbosity tradeoffs (read more).
nat announced expanded Data Explorer visualization support and helped set expectations on rollout timing (read more), and also clarified how AI translation “retry-ish” behavior works via backfill rather than aggressive immediate retries (read more).
lindsey shipped a substantial set of Topic Voting improvements—covering the “vote button while scrolling” affordance and post-vote notification prompts (read more).
markvanlan continued digging into nested replies UX, especially notification consolidation, parent-context navigation, and how users locate multiple unread replies inside deep trees (read more and the follow-up on “view parent context”: read more).
Falco added perspective on nested replies navigation patterns borrowed from Reddit/HN (multi-step parent traversal) and challenged assumptions about which notifications get consolidated (read more).
pmusaraj weighed in on AI translation operational constraints—why retries can be costly and why “runaway token bills” matter—while still acknowledging background retries exist (read more); separately, he outlined the correct settings combination to disable local signups while keeping external auth flows usable (read more).
supermathie provided a practical self-hosting filesystem strategy: symlink/mount only the GeoIP files rather than relocating the whole vendor data directory (read more), and also confirmed a merged fix for granular API access behavior for MCP users (read more).
manuel clarified navigation behavior around the new Home link vs user-specific homepage preferences during the Meta homepage changes (read more).
zogstrip jumped on two API/editor correctness issues: investigating the underscore alt-text double-escape regression (read more) and pointing to a consistency fix for draft deletion when Api-Username is provided without a username query param (read more).
If yesterday was any indication, today’s Meta is going to be full of blocks, branches, and buttons—try not to get lost in the nested replies while you’re admiring the new homepage layout.
Notable new-thread energy went into localization/SEO questions (read more), UX polish around likes (read more), and a grab-bag of power-user feature ideas (read more, read more).
Interesting Topics
#Theme component
pfaffman published “Show hidden categories”, a theme component that adds a “fake category” entry that actually links to a group page (for join/request access), and compared it to the established Category Previews approach (read more; related: Category Previews).
The Discourse Mobile Auth Button component got an update that opens a mobile-friendly modal and links directly to sign up / login flows, building on feedback and iteration for small-screen UX (read more).
#Announcements
The permanently delete capability was updated so the can permanently delete setting is now visible to admins (no console / team contact required), with extra confirmation safeguards and a required 5-minute wait between soft-delete and permanent delete actions (read more) new-featurepermanently-delete.
Current Projects — April 2026 shipped as the monthly “what we’re working on” newsletter, highlighting recently finished work like full-app embedding (read more), improved Solved setup (read more), and easier Topic Voting setup (read more) — plus what’s coming next (read more) current-projects.
A new webinar was announced: “Community Retention: How to Define and Drive Return Behavior” (May 14), focusing on practical retention definitions, onboarding moments, recognition loops, and enterprise community patterns (read more).
A sharp SEO/localization issue: translated ?tl= pages served by Content Localization appear to canonicalize to the base language URL, raising concerns about duplicate handling and whether translated variants can rank independently in Google — with agreement that language variants should be self-canonical (read more; acknowledgement: read more) seocontent-localization.
A tricky composer/raw corruption report: double-escaping underscores in image alt text can compound on each edit, and investigation started with a draft fix in progress (read more).
Moderators using Automation to flag content noted that notifications like “reviewable item #123” aren’t descriptive (unlike user flags which include topic context), prompting a request for clearer automated-flag notifications (read more) automation.
A solid bug find: uppercase letters in usernames break the “reachable mention” permission warning in the composer (because a lowercase-keyed lookup misses mixed-case input), and the discussion moved toward safer, incremental endpoint-by-endpoint fixes (read more; fix planning: read more) mentions.
Sites with reactions disabled pushed back on seeing two heart areas; the team confirmed work to restore the classic single Like button presentation (and a merge landed to bring it back for like-only sites) (read more; merge update: read more) completed.
Google Photos album oneboxes remain confusing: the thread dug into redirects, OG tags, and what Discourse can reasonably extract — and was explicitly tagged pr-welcome for contributors who want to improve the experience (read more; technical sleuthing: read more).
#Feature
A new notification level idea: “Obnoxious” — essentially “desktop notify me harder” for incident threads where rapid responses matter (beyond Watching) (read more) notifications.
Backup performance brainstorming: a self-host reported strong results from replacing gzip with zstd for large backup dumps (smaller outputs and dramatically faster compression), reviving interest in modern compression defaults (read more) pr-welcome.
#Translations
Translation update cadence came under the microscope: main branch translations lagged while release-branch translations stayed fresh, and the gap was attributed to maintainers being away plus a temporary break in the update pipeline — with the missing PR now merged (read more).
#Plugin
A new Discourse-to-Markdown plugin converts cooked HTML (the rendered post with oneboxes/mentions/quotes resolved) into a richer Markdown output, leaning into Discourse’s cooking pipeline rather than raw post source (read more) markdownai.
#Extras
A substantial app preview dropped: Domniq, a Discourse-native Android+iOS app concept with account integration, push/in-app notifications, moderation actions, and even backend admin plugin management surfaced in-app (read more).
lindsey delivered two high-impact updates: an admin-facing upgrade to permanent delete controls and safeguards (read more), plus the April edition of Current Projects outlining shipped work and priorities (read more).
Danielle posted the new retention-focused webinar announcement (read more) and also introduced the enterprise category scope and purpose (read more).
nat acknowledged the SEO issue around localized ?tl= pages and agreed they should be self-canonical, with a commitment to investigate (read more); they also posted a deployment confirmation in the Data Explorer charting thread (read more).
zogstrip weighed in on the mention-check case-sensitivity bug, pointing to a larger fix that’s “too big to merge right now” and choosing a safer incremental approach via focused PRs (read more); they also pushed tag cleanup work (“hopefully I caught all of them”) (read more) and started tackling underscore escaping in image alt text edits (read more).
chapoi confirmed the team is actively reverting the confusing likes layout for sites without reactions (“you can all stop adding +1s”) (read more).
davidb merged the change that restores a single Like button for like-only sites (read more), responded to follow-up UX concerns in the reactions/likes display thread (read more), and posted an “I’m working on this” status update on the structured-data bug report (read more).
Falco pointed an organizer toward using Nested Replies mode for cleaner AMAs and linked to the live demo thread as the reference implementation (read more; demo context: read more); they also expanded emoji alias translation work via a PR reference (read more).
pmusaraj invited contributions to improve Google Photos oneboxes by explicitly tagging the UX topic as pr-welcome (read more), guided troubleshooting for the AI translation Portuguese-locale edge cases and composer locale override controls (read more), and praised the cooked-HTML approach of the Discourse-to-Markdown plugin (read more).
kris.kotlarek merged a fix PR related to “clearing advice” not fully clearing, closing the loop on that UX papercut (read more).
gerhard explained why main translations paused (maintainer availability + temporary breakage) and confirmed the missing i18n PR was merged to get things back on schedule (read more).
May your like buttons stay singular, your canonicals stay self-referencing, and your “Obnoxious” notifications only fire when it truly matters.