In the last 24 hours (2026-03-07 → 2026-03-08), Meta saw 36 new posts across 5 new topics, with discussion spread across support troubleshooting, theming experiments, and self-host/dev setup snags (e.g. read more, read more, read more).
Explaining why Ruby 3.4.0.dev can fail Gemfile constraints read more
Also bubbling up on the sidelines: a multilingual blog thread got fresh replies read more, and the long-running events plugin topic flagged a broken external support link read more.
Interesting Topics
#Theme-component
jdc20181’s Tag Style Tool thread continued evolving into a mini “style builder” discussion, including Font Awesome icon support, UX requests for linking resources in settings, and experiments toward a color-picker UI read more (plus a progress demo read more).
A “why can’t I see the mobile UI on desktop browsers?” investigation explored the fading legacy of ?mobile_view=1read more, with pointers that it’s deprecated/legacy behavior read more and may have been removed recently read more; the deeper direction is viewport/capability-based styling read more.
A self-host admin reported Discourse ID signups silently failing (button does nothing) and noted anonymous-only console 404s like vendor.map/start-discourse.map, seeking configuration/debug guidance read more (discourse-id).
A new SEO/localization report suggested translated ?tl= pages aren’t being indexed because the canonical tag points to the non-translated URL (Google treating localized pages as “alternate with proper canonical”) read more (content-localization).
A self-hoster described AI Search resource impact and others asked for “hardware profile” details before enabling it themselves read more (aiai-search).
A theming question asked how to create a transparent “Discord-like” look, ideally per-user or for a small group—highlighting the common constraint that theme components typically apply instance-wide read more.
An iPadOS Safari oddity where the composer “flies off screen” when focusing different fields was reported—and then (mysteriously) stopped reproducing the next day, leading the OP to mark it resolved/withdrawn read more (resolution update read more) (composertablet).
In a solved onebox thread, NateDhaliwal suggested a composer button that inserts an iframe (theme-component feasible), and the discussion moved toward per-user personalization via custom user fields and access patterns read more (and follow-up on user-specific values read more).
A “non-admin users can’t load pages” support thread got a familiar first-line check: “does it work in safe mode?”, plus a reminder that the advanced search banner component is deprecated and its functionality moved into core/banner patterns read more (safe mode reference read more, deprecation notice read more, and the current banner guide read more).
#Self-hosting
The Windows 11 dev environment guide saw a fresh round of Ruby version mismatch troubleshooting (3.4.0.dev vs Gemfile ~> 3.4), with links to common “build fails / update fails” cousins and a confirmed fix by installing Ruby 3.4.8read more (related: build mismatch thread read more, crash-during-update read more, and the “big scary red button” update thread read more) (dev-install).
#Site-feedback
In the ongoing “improving support categories” conversation, sam pointed out Discourse AI already supports sophisticated agents and asked how to make advanced workflows easier to configure, tying into a parallel “split automations into triggers/actions” feature direction read more (feature request context read more).
#Theme
Pyx’s Modern Theme shipped an update aimed at compatibility with the upcoming default theme, including restoring a cursor-active behavior (under a new name) and tweaking button borders with an option to disable if it has side effects read more.
#Site-Management
A question on auto-bumping configuration asked whether “1” is effectively the minimum daily bump, after .25 (every 4 days) didn’t persist—raising practical concerns about overwhelming the feed in “resources” categories read more.
#Sysadmins
In the NodeBB → Discourse migration guide, a contributor shared a tweak to mongo.rb to ensure posts within a topic sort chronologically via sort(score: 1), improving import ordering read more (how-to).
#Feature
A “Math should be quotable” proposal suggested a theme-component approach to improve quoting of MathJax/KaTeX-heavy posts by replacing math wrappers with original TeX source before quote-to-Markdown conversion read more (pr-welcome).
Falco jumped into the Tag Style Tool discussion to note there’s a native HTML color picker input (<input type="color">) and that Discourse wraps it for easier usage—useful for turning a “maybe-plugin” idea into a realistic theme-component enhancement read more.
sam weighed in on improving support workflows, pointing out that Discourse AI already supports “extremely sophisticated agents,” and raised the key product question: how to expose these capabilities so admins can configure advanced workflows without heavy bespoke work read more.
If yesterday was any indication, today’s Meta motto is: may your mobile views be viewport-driven and your color pickers be delightfully native (read more, read more).
sam announced service tiers for OpenAI/Azure providers (including guidance on the responses endpoint for caching/costs) in Service tiers on Open AI providers, with a pointer back to the LLM settings page for configuration.
“Can Discourse force a one-way TOS acceptance?” was answered with a custom user field pattern that blocks saving until checked (marked solved) in Require TOS acceptance.
A big ops/perf report: enabling aiai-search caused heavy load while backfilling embeddings for a large site (millions of posts) in Enabling AI search crippled my server, after earlier requests for server/DB/provider specifics (read more).
A tricky error log around editing wiki posts for some users (with create_errors_json called with unrecognized type) landed in Error when editing a Wiki Topic.
Privacy/GDPR concerns surfaced again around oneboxes: max.l questioned whether onebox preview images/favicons are fetched remotely (tracking risk) in Cache onebox images and/or serve them from the main domain, and Falco walked through live testing and clarified behavior differences between composer preview and baked posts (read more).
A fast-moving iterative debug session continued for the Tag Style Tool, including a disappearing builder button and icon rendering quirks, in Tag Style Tool.
Plugin feasibility (FR): gilles sketched a workflow for a BoardGameGeek API-powered composer toolbar button, and the thread weighed theme component vs plugin tradeoffs (API key exposure) in Besoin d’avis pour essai de programmation de plugin.
If yesterday taught us anything, it’s this: keep your Guidelines renamed, your oneboxes cached, and never let an outdated build steal your cake day frosting.
Total activity (last 24h):51 new posts across 7 new topics, including fresh threads on chat, self-hosting, and plugins like a new points mall (read more).
New topics opened (7):
Chat UX request: open straight into Chat / show Chat on landing page (read more)
Permissions: disable chat for moderators (chat) (read more)
eisammy asked how to disable Chat for moderators (keeping it admin-only), and Lilly confirmed moderators can’t be excluded when chat is enabled—while NateDhaliwal traced the behavior to core chat settings, likely requiring a plugin to override (chat) (read more)
lucy.sierracircuits reported that members can’t upload more than one image per post; Lilly suggested also checking the simultaneous uploads site setting as a likely culprit (read more)
pHneutre noticed the Upcoming Events sidebar icon showing as a generic link instead of a calendar; Falco advised it’s fixed in current Discourse and recommended updating (calendar-and-event) (read more)
In a long-running moderation/admin thread, Lydia2 hit a confusing state where a user appeared silenced without an “unsilence” button; Bas suggested clicking “silence” again to try resetting the state back to normal (read more)
A wiki-editing problem got a quick resolution: isaac pointed to a fix for an error when editing a Wiki Topic, then followed up as additional 500s were reported and the team started investigating further (read more)
#Self-hosting
Huskijore (moving a community off Discord) asked whether Discourse can provide a home-screen shortcut that lands directly in Chat, or even a “latest-like” view that includes selected chats; Andrew_Rowe recalled similar prior attempts but no clean solution yet (chat) (read more)
For SEO-minded WordPress operators, hritik asked how to deploy Discourse on a sub-path rather than a subdomain; ToddZ clarified the WP plugin is for integration and linked the canonical path prefix/subfolder setup guide (read more, plus background: read more)
In troubleshooting a broken onboarding flow, asc and others continued digging into new users failing to sign up alongside console 404s (source map requests) and resource exhaustion errors, narrowing down what an anonymous user experiences (discourse-id) (read more)
A Cloudflare hardening thread got an update as haydenjames shared real-world rulesets and planned to incorporate Discourse’s recommended WAF exclusions, especially around post creation and Data Explorer admin queries (cloudflare) (read more)
#Site Management
In the Discourse AI spam tooling thread, LotusJeff asked for lower-level reporting behind the AI spam summary box; Falco replied with a direct SQL query to pull records from ai_spam_logs, pointing to #DataExplorer as the practical path to “show me the details” (aispammoderation) (read more, Data Explorer reference: read more)
#Feature
Naming polish landed: in the “AI Persona → AI Agent” discussion, Falco confirmed sam shipped the rename work, linking the implementation PR and closing the loop on the terminology direction (ai) (read more)
In the automation redesign request (split automations into triggers and actions), participants pushed for more expressive workflows—especially delays and richer conditional logic—with noahl exploring how conditions could be composed with AND/OR and values pulled from trigger_context (automation) (read more)
#Plugin
Monikas announced a new (very early) Discourse Points Mall plugin—daily check-ins, a shop, orders, makeup cards, and a points ledger—while explicitly flagging UI bugs and advising admins to wait before installing in production (read more)
A Foundation theme UI report (in Chinese) flagged a search button wrapping issue; awesomerobot said the fix is to prevent text wrapping in buttons and noted it should be resolved after updating Discourse (foundation-theme) (read more)
On site chrome and default pages, the “FAQ/Guidelines and About pages” discussion continued: ToddZ and Andrew_Rowe outlined the practical value of the built-ins (default sidebar links, boilerplate, and discoverability/SEO concerns even if you “hide” them) (read more)
#Translations
In a thread about poor French translations in automation UI, gerhard talked through the dream of in-context translations inside Discourse, noting Crowdin’s constraints around single-project in-context mode and hinting at experimentation in coming months (automation) (read more)
#Developer Guides
A theme-dev thread got modernized guidance: MarkDoerr explained that legacy widget code is outdated due to the post stream changes, and suggested using a Glimmer component plus api.renderAfterWrapperOutlet to place user custom fields in the post header—linking back to the post-stream migration guidance (read more, migration context: read more)
#Site feedback
Meta’s “collaborative content gardening hub” experiment kept chugging along: ToddZ proposed pruning obsolete “About page customization” topics now that the newer About-page docs and features exist, and linked several candidates for cleanup alongside the newer canonical references (read more, related hub: read more, About page announcement: read more, About page guide: read more, candidates: read more, read more, read more)
Falco pushed forward both product clarity and admin pragmatics: confirmed the AI Persona → AI Agent rename landed (read more), provided a Data Explorer SQL to inspect AI spam log details (read more), and noted an Upcoming Events icon issue is already fixed upstream (encouraging an update) (read more).
Bas helped troubleshoot an odd moderation UI state by suggesting a “toggle it to reset it” approach for a missing unsilence control (read more).
isaac linked a confirmed fix for a wiki topic editing error, then acknowledged follow-up 500 errors and indicated the team is investigating (read more, follow-up report: read more).
awesomerobot acknowledged a foundation-theme search UI bug and pointed to a fix that prevents button text wrapping after updating Discourse (read more).
gerhard shared direction on improving translation workflows, including the idea of in-context translations inside Discourse and the constraints with Crowdin’s current project model (read more).
tgxworld confirmed a fix is queued for object-type theme settings, linking the PR that will address it (read more).
MarkDoerr provided updated theme-developer guidance for rendering custom fields near post headers using Glimmer components, referencing the broader post-stream migration work (read more, background: read more).
Between spam-log SQL, chat UX wishes, and Glimmer-powered theme fixes, meta spent the day proving that “it’s just one small tweak” is rarely just one small tweak (read more).
Solved plugin confusion + post-merge “FAILED” when selecting a solution:Silas-Inservio-Pax hit an error after merging topics and then trying to mark a specific reply as the solution, with Lilly and darkpixlz guiding them toward browser console output and checking /logs (which required an admin). read more
Data Explorer API change: limit=ALL stopped working (by design):pfaffman tracked a breakage down to limit=ALL, with Falco pointing to a change intended to remove the “no limit” path and recommending pagination (and clarifying the new cap). read more (see also: the “reverse engineer” approach mentioned in-context read more)
After upgrading, “official” theme components fail… but the culprit is a plugin:Stephane_Roy reported multiple “official” components breaking post-upgrade; awesomerobot found a console error pointing at the broken Journal plugin and suggested confirming via safe mode with plugins disabled. read more (related: Journal plugin reference read more)
Adding intro text to /g (Groups page) via a tiny theme component:pHneutre wanted a paragraph above the group list; ToddZ outlined a simple Theme Component using After Header + scoped CSS to only show on .groups-page. read more (background threads: custom HTML on groups page read more, Versatile Banner read more)
Moderator permissions: can mods delete users, and how do you prevent it?Ethsim2 confirmed moderators can delete users by default, then documented a practical workaround using category moderators + enable category group moderation to avoid global powers. read more (reference table: trust-level permissions read more; related staff logging notes read more)
User post deletion fails with InvalidForeignKey (reviewable notes):Canapin found deletion failing due to reviewable_notes referencing reviewables; darkpixlz confirmed it looks like a bug and linked a current workaround: remove the related note/comment first. read more (workaround context: read more)
Onebox/OpenGraph failures traced to server certificate chain:wlandgraf reported Onebox previews failing on their own instance despite working on Meta, then determined the Discourse server couldn’t validate the site’s newer cert chain. read more (handy troubleshooting guide referenced: read more)
Localized tags aren’t slugified (breaking body classes + tag display):RGJ demonstrated how localized tag names containing whitespace/quotes leak into CSS classes and UI, with sam looping in nat to investigate. read more (related mention: slug behavior discussion read more)
Shared-edit wiki history “Edit post” opens the wrong editor and errors on save:hannahbit reported that editing from post history can open the normal editor (not the collaborative one), then saving triggers an error (including a 422 involving tags), temporarily blanking the post until refresh. read more
Multiple form templates per category don’t persist after refresh:donaldsoncd showed that selecting two templates initially works, but after refresh only one remains as the default—raising questions about limitation vs bug in form-templates. read more (reference docs/threads: Introducing Form Templates read more, Creating form templates read more)
Admin UI glitch: changing target audience for “Enable form templates” creates a sidebar “Update Discourse” entry:Noble_Fish posted a reproducible UI oddity in v2026.3.0-latest where toggling audience seems to create an incorrect left-nav entry. read more
Login page logo won’t center when language/theme toggles appear:jack222 reported the top login logo shifts off-center if a language switcher or dark/light toggle appears on the right side. read more
Profile/settings IA continues to bug people (navigation + grouping): discussion continued around reorganizing profile/account/security/interface sections to reduce user confusion, with concrete suggestions quoted into the thread by ToddZ. read more
#Feature
Proposal: “User self engagement” report for CPD-style evidence:Paul_King suggested a user-run report that can summarize engagement over a date range (categories/tags/topics, reading vs posting) to help professionals document participation. read more
How Discourse built “Upcoming Changes” for gradual rollouts:martin posted the companion discussion for the blog explaining how Discourse can stage changes across different site configurations to prevent surprises for admins and members. read more
awesomerobot diagnosed a post-upgrade breakage of “official” theme components and traced it to a missing module import from the Journal plugin, recommending safe mode to confirm plugin interference. read more
Also pointed someone trying to jump directly into Chat toward a helpful theme component. read more (component: read more)
Falco helped untangle the Data Explorer API change that rejects limit=ALL, linked the underlying change, and shared pagination guidance plus the current max-row cap. read more
They also clarified assignment-related API endpoints and parameters for group vs direct assignments. read more
And confirmed delayed AI Agent responses aren’t supported yet, framing it as an automation need and hinting at a future overhaul. read more
martin kicked off discussion on Discourse’s gradual rollout machinery via the “Upcoming Changes” companion topic. read more
nat acknowledged the localized-tag slugification bug report and jumped in to investigate. read more
Separately, they confirmed a fix had been merged for a wiki-editing issue and linked the PR in-thread. read more
Bas chimed in on an “unsilence” UX oddity with the memorable takeaway:
“Task failed successfully”
and asked for more reports if it happens repeatedly. read more
sam connected the localized-tags issue to earlier slug-related work and looped nat in for review. read more (referenced: read more)
gerhard clarified Crowdin behavior around “identical translation already saved,” and offered to review the specific language string in question. read more
pmusaraj responded on a signup/console-error thread by suggesting a controlled test: try a fresh install on the same 1GB droplet size to isolate whether resource constraints are the root cause. read more
That’s a wrap—may all your localized tags be slugified, your limit=ALL requests be pleasantly paginated, and every “task failed successfully” moment end in a clean refresh.
yingdong asked how to localize custom badges/groups on multilingual sites (badgesgroupstranslation), and nat explained why seeded badges are i18n’d but custom ones aren’t—plus a console-only workaround using TranslationOverride.upsert! to create new locale keys (read more).
A tricky edge case popped up where a topic merge left a “solved” record behind, preventing the new merged topic from marking a solution; martin fixed the database state and noted they’ll investigate a preventative fix (read more).
After a change, admins can’t turn topics from read-restricted categories into global banners anymore; dax framed it as an access-control/security safeguard and suggested using unlisted topics in public categories plus Discourse Automation as a workflow workaround (read more, plus the referenced automation topic: read more).
A report about mobile browser text-selection “action buttons” not working ended with supermathie recommending supported browsers (and explaining why chasing obscure/non-store browsers isn’t viable) (read more, background: read more).
The discourse-subscriptions plugin started crashing boot on v2026.3.0 with an USERNAME_ROUTE_FORMAT constant error; sam confirmed a load-order/deprecation tangle and shipped a core PR to remove the deprecation path (read more).
“Multiple form templates per category” didn’t persist because the save button never appeared; awesomerobot reproduced, provided a workaround (disable “simplified category creation”), and then merged a fix shortly after (read more).
Dashboard report UX: a discussion on whether traffic graphs should re-scale the Y-axis when series are toggled; chapoi agreed the intention doesn’t fit this report well and suggested making the scaling smarter (read more).
A gnarly composer issue on iPad where “peek mode” could shove the editor off-screen appears fixed via a core change; chapoi asked for confirmation after updating, and the reporter confirmed it worked (read more).
Localized tags weren’t being slugified correctly (content-localization); nat shared that a fix was merged to clean localized tag names returned from the LLM and migrate existing “dirty” tag names (read more).
Two fresh admin/UI bugs landed: newly created groups not appearing everywhere until refresh (read more, related older thread: read more) and a “topic timer” flow that could lead to a disastrous, unresponsive UI state after scheduling publishing with a missing destination category (read more, related: read more).
#announcements
Danielle announced a new webinar—“Creating & Nurturing a Moderator Program”—and confirmed that registering will also provide access to a recording afterward (read more).
#plugin
The official Discourse Signatures plugin got a solid set of improvements merged by jamie.wilson: group-based restriction, category-based display, first-post-only mode, stricter URL validation, and size limits—all backward-compatible by default (read more).
#extras
The GitHub Action that creates Discourse topics for releases shipped v1.1.0, adding GitHub→Discourse username mapping so release announcements can post “as the author” instead of a fixed service account (read more).
The terminal client termcourse added real-time notifications via MessageBus so topic list updates can appear in a status bar (and sparked discussion about matching Discourse keyboard shortcuts) (read more).
#site-feedback
Feedback continued on Meta’s category re-organization; hellekin shared specific navigation pain points (subwiki “index” links, missing descriptions, and subcategory visibility), with suggestions about where “Data Reporting” should live (read more).
nat dug deep into multilingual badge mechanics—clarifying what’s i18n’d via Crowdin vs. stored as plain DB text, and why custom badge localization currently requires console access (How can badges and groups be localized (multilingual)?). Also shared a merged fix for cleaning localized tag outputs + a migration to repair existing localized tags (Localized tags are not slugified).
sam responded to a boot-crashing regression involving the discourse-subscriptions plugin and followed up with a core PR to eliminate the deprecation issue underlying the failure mode (Discourse-subscriptions plugin crashes boot on v2026.3.0).
martin investigated and fixed a “cannot mark reply as solution after merger” situation by correcting an existing solved-record conflict left behind from the old topic (Cannot mark reply as “solution” after merger).
dax explained why global banners are now gated (no more banners sourced from read-restricted categories), and suggested an interim workflow using unlisted topics plus automation to keep banner templates out of public lists (Can no longer create global banners from restricted categories).
jamie.wilson merged a major upgrade set into the official signatures plugin, including group restrictions and hardened URL validation (Discourse Signatures).
isaac clarified the security rationale behind disallowing banners sourced from read-restricted categories—banner content can become visible to everyone, and admins may not realize that implication when drafting in private areas (Can no longer create global banners from restricted categories).
That’s a wrap: yesterday we learned that badges can be multilingual (sometimes), banners can’t be private (anymore), and topic timers can be… adventurous—so keep your console handy and your drafts well-fed.
LotusJeff kicked off a nostalgia-and-migrations thread asking “How old is your forum?” and started compiling an “elder forums” table, with stories ranging from mailing lists → Yahoo Groups → phpBB → Discourse (read more).
Related: a long-running vBulletin-to-Discourse migration effort came up via elmuerte’s import work (read more) and community anniversary reflections were referenced (read more, read more).
#Plugin
derak announced diskuz Call, a plugin that adds peer-to-peer WebRTC voice/video calls inside Discourse (site handles signaling, media goes P2P with optional TURN) (read more).
If you’re evaluating new add-ons, the canonical plugin install guide remains the starting point (read more).
The ActivityPub plugin thread saw reports of failures when trying to follow @announcements@meta.discourse.org, including “Could not resolve actor” warnings and logs to investigate (read more).
A security-focused heads-up landed in the Sign-In with Ethereum plugin topic: RGJ pointed people to a newer fork and urged an immediate switch due to vulnerabilities found in the older plugin version (read more).
#Announcements
Discourse’s hosted LLM offering increased capacity substantially across plans; Falco shared new limits (e.g. Starter → 200K, Pro → 500K, Business → 1M) plus improvements to model quality, max tokens, and responsiveness (read more).
Background context continues in the broader ai discussions around dev workflows and guardrails (read more).
A new request appeared from someone looking for help installing Discourse on a VPS (including database/SSH setup), with NateDhaliwal pointing to the one-line installer and a practical “quick start” path (read more).
A “sticky notification” report described Discourse showing a notification badge that didn’t correspond to anything unread, prompting troubleshooting (reload, cookies, logout/login) and broader commentary about async UI complexity (read more).
A Chinese-language report said that after chat is disabled, chat-related preferences/settings disappear, and visiting the preferences/chat URL redirects to /latest (read more).
The reporter referenced an older recurring issue thread for historical comparison (read more).
A UI glitch was shared where opening a user card and then scrolling caused the card to appear over the editor in a “funny bug” screenshot (read more).
Upload troubleshooting continued: Lilly tested new-user upload limits and couldn’t reproduce the “only one image” issue under default settings, while others suggested verifying whether the real limiter was embedded media settings or error messaging (read more).
Email-in reliability: a self-hoster reported Discourse stopped polling POP3 with Net::ReadTimeout, despite interval changes, upgrades, and restarts—suggesting something intermittent or provider-related (read more).
A regression report on 2026.3.0-latest: staging showed username + real name no longer displayed together (only username shown), asking for debugging pointers (read more).
Another urgent admin report: a community began logging everyone out and blocking logins with “you can’t log in from that IP address” unless retried several times (read more).
A practical limitation surfaced when merging topics: you currently can’t mark a reply as “solution” after a merge unless you clear the existing solution first—though a fix is in progress (read more).
Related feature discussion on solved UX continues elsewhere (read more).
Banner workflows: users found it hard to create global banners from restricted categories because “Pin topic” disappears when unlisting; a workaround is to use Automation’s “Make Banner Topic” script referencing the unlisted topic ID (read more).
(Automation plugin context: read more)
The DiscoTOC iPad portrait overlay problem has a clear direction: chapoi pointed to a fix via a PR that should resolve TOC rendering over text without a proper background (read more).
A new step-by-step guide explained how to set up Discourse MCP in OpenCode CLI, emphasizing that ordinary-user access is enough and encouraging people to “use your LLM” to follow the instructions (read more).
Companion guide for another client (Codex CLI) was also referenced (read more).
#Extras
The Clip To Discourse Chrome extension shipped v0.19.5 with text selection support, selection-aware templates, and a right-click context menu—plus plans to implement the Discourse User API auth flow (read more).
Relevant spec: Discourse User API keys specification (read more).
Terminal Discourse client termcourse got UX tweaks and localisation updates (including es, fr, de, en), with merefield inviting PRs for more languages (read more).
chapoi weighed in on the “phantom notification” issue, explaining why these problems are extremely hard to solve perfectly given the complexity of modern web stacks (read more).
chapoi answered an ai development-docs question by pointing out that Discourse dev docs are now included in the main repo (context: discussion in the Claude + Discourse dev thread) (read more).
chapoi also linked the likely fix for the iPad DiscoTOC overlay issue (read more).
Falco posted updated capacity limits and performance improvements for Discourse’s hosted LLM service, noting multiple capacity increases since launch (read more).
dax provided a concrete workaround for creating banners from restricted/unlisted topics: use the Automation plugin’s “Make Banner Topic” script with the topic ID (read more).
martin confirmed the current limitation around solution-marking after topic merges and noted a fix is being worked on (read more).
sam responded to a dev question about replacing Markdown with Quarkdown: not possible directly—you’d need to extend markdown.it with the desired features (read more).
That’s a wrap—yesterday we time-traveled through 25-year-old forums, shipped bigger AI limits, and even squeezed in a Discourse-native WebRTC calling plugin… not bad for a single day on Meta.
Canapin suspected a blocked-IP misconfiguration in a “everyone is getting logged out” report, and Falco quickly traced it to a Cloudflare + IP ban foot-gun (everyone appears from one IP), plus a reminder to use the Cloudflare template in app.yml (read more, read more).
Forum content “acquisition”: Timelord asked how to bring content from another Discourse without a full backup/restore, and itsbhanusharma pointed to guidance on moving topics between instances (read more, read more, plus the referenced how-to: read more).
A Chinese-language AI-translation edge case: enabling AI translation also localizes tags and makes them hard to edit; nat suggested enabling the Experimental tag settings page so tag localizations can be edited properly (read more, read more).
Long-form “fix-it” write-up: satonotdead documented a recovery approach for missing upload records after migrating from S3 to local filesystem, including rebuilding uploads DB records and rebaking posts (read more).
Article/course-style publishing on Discourse: Engineer_Abdallah explored using Discourse as a tutorials + course sequence platform (with restricted authorship), and chapoi recommended using Topic List Thumbnails to get images into lists (read more, read more, and the component: read more).
Admin UI nuance: Ethsim2 questioned how about page hidden groups should interact with about page extra groups—specifically whether “extra” viewers (like admins) should still see otherwise-hidden groups on /about (read more).
Theme behavior investigation: a Ghost theme user reported that categories without subcategories weren’t showing view/reply counts; chapoi challenged whether it’s truly theme-related and pointed at the Ghost preview showing counts on a “no subcategory” category (read more, read more, Ghost theme reference: read more).
Attachment link counters regression: a report that click counters no longer appear for uploaded files—whether or not |attachment is present—prompting questions about restoring the prior behavior (read more).
OIDC login troubleshooting: a LinkedIn OAuth redirect mismatch was resolved by ensuring the callback URL matches, e.g. https://discourse.example.com/auth/linkedin_oidc/callback (read more).
ai sentiment backfill: satonotdead hit Don't run this task in production! when trying rake ai:sentiment:populate, and Falco clarified that backfill for the last 60 days is automatic once enabled (read more, read more).
search#tablet: a mobile/tablet report where the floating search widget types characters reversed (“thing” becomes “gniht”) in landscape on Edge/Android; Falco couldn’t reproduce on a newer environment and suggested trying another keyboard (read more, read more).
searchtablet (related): another Edge/Android landscape/portrait issue where the floating search box can’t be closed after rotating back to vertical, persisting across navigations until the device is horizontal again (read more); the reporter also confirmed reproducibility in Safe Mode (read more).
#solved: the new category settings UI appears to make it impossible to disable “Allow topic owner and staff to mark a reply as the solution” after it’s enabled, with the “Solved” section disappearing from the original settings page (read more).
#chat: after disabling chat, chat settings reportedly disappear from preferences and don’t return; a second user confirmed they can reproduce it (read more).
#Feature
Reactions/likes UI: a user asked how to expand “and 6 more…” to see everyone who reacted; Falco said Discourse is working on a new UI component to support this cleanly (read more, read more).
Multisite clarity: supermathie proposed improving the /sidekiq experience for admins on multisite “guest” sites—showing a helpful explanation instead of a confusing error when Sidekiq is only available on the host instance (read more, with prior context link: read more).
Calendar privacy ergonomics: for authenticated ICS feeds for private events, Falco pointed to work already added via PR plus follow-up improvements to make User API Key flows friendlier for non-technical users (read more, PRs referenced: read more, read more).
#Integrations
ai#how-to: Discourse AI Google Programmable Search Engine setup hit a snag as Google now requires at least one configured domain; Falco confirmed the “entire web” behavior is discontinued and said the team is researching alternatives (including leveraging LLM-native web search tools) (read more, read more, plus Google’s deprecation context links shared in-thread: read more, read more).
#Theme component
A new Bilibili inline player theme component was shared as a no-rebuild alternative to the server-side plugin approach, with setup notes and comparisons to the existing OneBox/plugin route (read more, related plugin topic: read more).
#Plugin
Discourse OpenID Connect (openid-connect) discussion continued with a request to sync Discourse groups from OIDC groups, referencing an older PR that implemented it but wasn’t taken further (read more, referenced PR: read more).
#Community Building
A community check-in thread asked “How old is your forum?”, drawing stories ranging from forums founded in 2024 to a week-old install currently stuck at 502 Bad Gateway (read more, read more).
A Dev curiosity resurfaced: “Can Markdown be replaced with Quarkdown?”, with merefield praising the linked repo (read more).
#Using Discourse
Topic list filtering: a question about using /filter while keeping a left-side navigation (like a docs sidebar) referenced the official guide on filtering topic lists (read more, original reference: read more).
Falco was busy across support, bugs, and roadmap signals: they diagnosed a Cloudflare/IP-ban cause for mass logouts (read more), asked for keyboard variability to reproduce the reversed floating-search input bug (read more), confirmed work underway for a better “view all reactions” UI (read more), and clarified that Discourse AI Google search needs new providers now that Google’s prior capability is discontinued (read more). They also noted that AI sentiment backfill is automatic for the last 60 days (read more) and referenced improvements for authenticated ICS feeds in the calendar feature area (read more).
supermathie posted an operational heads-up in an email-delivery thread, linking the breaking/fixing commits and apologizing for the disruption from a merged gem update (read more). They also proposed a UX improvement so admins understand why /sidekiq is unavailable on multisite guests, aligning with the “principle of least surprise” (read more).
nat delivered a quick solution to a tag-localization issue caused by AI translation: enable the Experimental tag settings page so tag localizations can be edited (read more).
chapoi helped guide two separate support threads: for “articles with images,” they recommended using Topic List Thumbnails (read more); and for Ghost theme view/reply counts, they challenged the premise by checking the theme preview and asking for confirmation it’s actually theme-caused (read more).
Yesterday’s vibes: if your search starts typing backwards, just remember—on meta, someone will inevitably suggest palindromes while the team hunts the real fix.
In the last 24 hours, meta logged 42 new posts across 4 new topics—including fresh threads on composer UI overflow (read more), intermittent theme upload failures (read more), recovering missing hosted CDN assets (read more), and embedding Bunny Stream videos (read more).
Top users (posts / likes, with a recent reference post):
In a composer usability thread, 祁同伟 reported that when the editor has “too many buttons,” the ones at the end become inaccessible; replies suggested the toolbar is horizontally scrollable, but the affordance is subtle (and the arrow disappears on touch devices), sparking discussion about better pointer/viewport logic (read more, read more).
A hosted-support question asked how to restore individual missing CDN uploads (one image + two JSON attachments) after a hiccup, highlighting the gap between self-hosted “I know where to look” instincts and the hosted operational toolchain (hosted-support) (read more, read more).
A theme-dev workflow issue: a site intermittently returns HTTP 500 during admin/themes/import.json while uploading via CLI, and the ensuing debugging touched logs, deprecation noise, and isolating third-party plugins as a first step (read more, read more). (Related reference threads that came up: Theme CLI install guide (read more) and installing themes/components (read more).)
Tablet/search UX: someone observed that characters appear in reverse order while typing in the floating search widget, and narrowed it down to the OS “floating keyboard” feature (with follow-up testing planned across keyboards/IMEs) (searchtablet) (read more, read more).
An older-but-active DiscourseAI support thread circled back to debugging missing sentiment output (“no sentiment in 60 days”) and pointed to the self-hosting setup guide for sentiment/emotion as the baseline checklist (aiai-sentiment) (read more, read more).
A signup regression investigation continued: after toggling “enable local logins,” new users reportedly hit failures plus console errors, with logs mentioning missing MaxMind DB files and OAuth callback failures in the Discourse ID flow (discourse-id) (read more, read more).
An attachments/UI detail got attention: the link counter/URL formatting for attachments seems to include a second “dimension-like” segment that makes sense for images but looks suspicious for non-images, raising questions about what the counter should display (read more, read more).
A short, practical embed question: how to get Discourse to inline-embed Bunny Stream (Bunny CDN) videos instead of showing a plain link preview, using a player.mediadelivery.net URL as the example (read more, read more).
A solved support topic on forum acquisition/migration planning saw an update promising dev testing results “in the next week or so,” keeping the thread moving even after being marked solved (read more, read more).
In a “help me install Discourse on my VPS” conversation, the thread evolved from “I’m new to servers/SSH” into practical offers (install help + backup strategy) and alternatives like one-click upgrade tooling, plus a side discussion about legal requests and data access expectations (read more, read more).
#Theme_component
The Banner Featured Links component received a burst of maintenance: replacing deprecated htmlSafe, fixing mobile SCSS issues, improving settings descriptions, tightening HTML validity, and pinning to a newer core version; the update was shared along with an upstream PR for review (read more, read more).
An “anchor links don’t work inside Discourse” report appears resolved: the issue could no longer be reproduced after a core fix landed, and the topic is being scheduled to close unless anyone can still trigger it (read more, read more).
#Plugin
The long-running activitypubexperimental thread gained more diagnostics: a participant shared log excerpts showing repeated handle validation and actor lookups while confirming identical behavior to prior reports—useful breadcrumbs for anyone trying to reproduce (read more, read more).
The Geo Blocking plugin thread clarified Cloudflare specifics: it can work with Cloudflare when configured correctly, but CF-IPCountry is a country code header (not an IP), and the plugin relies on Discourse’s MaxMind database rather than that header (read more, read more). (Cloudflare best-practices doc referenced in-thread: read more.)
#Site_feedback
In the “collaborative content gardening hub” discussion, Canapin described using flags to request edits on older posts, but hit an odd UI limitation where only an “It’s illegal” flag option appeared—prompting a meta conversation about better processes (wiki conversion, mod contact norms) and cross-linking to “user uploaded files monitoring” and “topic gallery” ideas (read more, read more). (Related plugin/topic mentioned: read more.)
awesomerobot dug into the missing horizontal-scroll arrow in the composer toolbar overflow discussion, asking whether a theme might be interfering and confirming the current behavior: the arrow is intentionally hidden on touch devices—while questioning whether that assumption still holds for touch-enabled laptops (read more, read more).
renato contributed two notable updates: a UX refinement idea for the scroll-arrow logic (consider “fine pointer” detection / narrower-screen heuristics) in the composer toolbar thread (read more), and a maintenance closeout in the anchor-link bug report after it stopped reproducing post-fix (read more).
Falco responded to DiscourseAI sentiment debugging by steering the investigation back to the documented self-hosting setup steps—effectively a “verify the pipeline end-to-end” checkpoint for anyone seeing missing sentiment output (read more, read more).
If yesterday had a theme, it was “everything scrolls sideways (including your debugging scope)”—from hidden composer arrows to CDN hiccups and one more embed that refuses to inline.
48 new posts across 3 new topics in the last 24 hours, with fresh threads including a broken theme-component footer template (read more), a sidebar-link URL-normalization bug report (read more), and a question about proxying a forum via someone else’s URL (read more).
Recent activity highlights (source links) das-g and chapoi dug into a theme-component regression around deprecated connector patterns (read more). merefield gave practical mitigation advice for unwanted proxy mirroring of a forum (read more). dax noted that category-specific title placeholders are now available in core (read more).
Other threads that saw notable replies (sampling of the day’s chatter):
ghost theme category metrics rendering (read more), Cloudflare setup notes (read more), ActivityPub actor lookup troubleshooting (read more), Discourse AI tool timeout debugging (read more), automation composer formatting quirks (read more), login/sign-up errors with Discourse ID (read more), AI sentiment backfill questions (read more), and search/filtering with topic voting (read more).
das-g reported a theme “component” footer whose templating began rendering control directives literally, and chapoi traced it to ongoing modernization work (notably deprecated registerConnectorClass) and recommended refactoring toward plugin outlets and modern theme patterns (read more, read more, read more, plus background: read more, read more, read more).
In a #hosting-flavored security/privacy question, ばこん asked how to prevent a “friend” from proxying their forum via another URL; the core guidance landed on policy + enforcement, up to making the forum private and banning obvious mirroring behavior (read more, read more).
A ghost-theme issue showed category reply/view counts failing to render when viewing a category without subcategories; chapoi pinpointed a missing outlet in that display context and later noted a structural change to make the custom elements consistently appear (read more, read more, read more).
A report in Chinese asked about Discourse AI tool-call timeouts (ai); Falco pushed for concrete details (which tool + what request) to move from symptoms to actionable debugging (read more, read more).
Automation formatting (automation): renato confirmed fixes related to escaping/formatting when pasting special markup (like [wrap]) into automation text fields, and discussed the tension between “rich editor expectations” and “automation wants raw-ish text” (read more).
A bug report described sidebar “custom link” normalization stripping the site hostname out of a query parameter for external URLs—breaking redirect-style use cases—along with a workaround involving URL-encoding and DB edits (read more).
In ongoing Discourse ID troubleshooting (discourse-id), pmusaraj suggested regenerating credentials, then pivoted to investigating broader signup configuration after regeneration didn’t resolve 404s for new user creation (read more, read more).
Discourse AI Sentiment setup (aiai-sentiment): a user confirmed dashboards were working but wanted deeper historical backfill; Falco focused the conversation on what time range was actually backfilled so far (e.g., “last 60 days?”) before pushing further (read more, read more).
A regression report claimed “username + real name” display behavior changed in 2026.3.0-latest; follow-up suggested checking safe mode as a next diagnostic step (read more, read more).
A question on the floating search widget reported reversed character order when typing (searchtablet) and asked why the topic was reclassified from “bug” to “support” (read more).
Category creation UX (categories): dax highlighted that Discourse now supports title placeholders per category, and separately confirmed the capability is “now in core” for those looking to customize the topic-title prompt (read more, read more).
Another Chinese-language UX thread (composer) showed that when the editor has “too many buttons,” later buttons can become inaccessible; testing in safe mode affected whether the overflow/arrow UI appeared, suggesting theme/plugin interactions (read more).
#Plugin
ActivityPub (experimentalactivitypub): pmusaraj investigated an issue where an actor like @announcements@meta.discourse.org couldn’t be found, starting by narrowing down the Discourse version and confirming the actor resolved correctly elsewhere (read more).
Topic Voting: users asked for advanced search options tied to votes; the answer suggested using filter parameters (e.g., order:votes, status:open, -tag:) and even saving the filtered URL for others via the sidebar—also referencing a related closed thread for context (read more, read more, related: read more).
chapoi
Investigated a theme-component regression where a footer template stopped rendering as expected, connecting it to deprecations and the Glimmer modernization path, and provided practical direction toward plugin outlets and theme docs (read more, read more).
Also diagnosed a ghost theme edge case where reply/view widgets didn’t appear in certain category views, then followed up with an implementation change to make the elements render consistently (read more, read more).
dax
Shared that Discourse now supports category-specific topic-title placeholders, including a pointer that the change has landed in core (read more, read more).
Falco
Pressed for concrete reproduction details in a Discourse AI tools timeout report—focusing on which tool and what request to enable proper debugging (read more).
Followed up on AI sentiment backfill expectations by clarifying what time window was actually populated (e.g., “last 60 days?”) before exploring extending history (read more).
pmusaraj
Helped narrow down an ActivityPub actor discovery issue by asking about Discourse version and verifying expected behavior elsewhere (read more).
Continued investigating Discourse ID signup failures by recommending regenerating credentials, then requesting a (sanitized) view of login-related site settings once that didn’t resolve the 404s (read more, read more).
renato
Confirmed that automation-field escaping for special formatting (like [wrap]) should be improved after a merge, and explained how clipboard HTML payloads can cause the rich editor to “do the wrong thing” for automation-style inputs (read more).
Yesterday’s vibe: if your footer suddenly starts printing template syntax and your votes need better filtering, at least Cloudflare and plugin outlets are there to keep the plot moving.
In the last 24 hours (2026-03-16 → 2026-03-17), Meta saw 97 new posts across 14 new topics. (See today’s new announcement on support category creation: read more)
Support categories are now one-click configurable using Discourse Solved defaults.martin announced a streamlined “Support” category type that auto-enables solution-marking and sets sensible defaults, building on the longstanding solved plugin foundation (read more; background on #solved:read more).
Splash screen branding feedback continues (SVG sizing limits). A follow-up in the splash branding announcement notes constraints around customizing SVG sizes for branded loading experiences (read more).
Theme component naming conventions: “discourse-tc-*” emerges as a community standard.das-g asked what’s recognizable on disk and in repos; awesomerobot noted there’s no enforced convention, while others shared consistent prefixes like discourse-theme- vs discourse-tc- (read more).
Glimmer theme component assets: using assets/ + settings.theme_uploads to reference images.das-g worked through strict-mode template constraints, with NateDhaliwal confirming assets in assets/ are treated as uploads and can be referenced via theme upload settings (read more; the underlying “include assets” guide being discussed: read more).
“Templating of my component broke” wrapped up with a documented working approach. After iterative troubleshooting, das-g posted a working resolution (and a repo commit) and discussed best practice around marking solutions with chapoi (read more).
A quick win: broken links in the Theme Developer Quick Reference were fixed. A report that the theme/component directory links no longer worked led to a prompt correction (read more).
iOS / Hub composer sometimes becomes unresponsive while editing.gingerbeardman described an “unable to exit editing” state requiring an app force-quit; chapoi and awesomerobot compared notes and asked for version/repro details (read more).
Per-user “force approval” isn’t built-in, but review-queue patterns (and dynamic groups) can approximate it.haydenjames wanted a per-user moderation switch; chapoi confirmed no native toggle, and Moin suggested a strategy using group-based approval plus #discourse-dynamic-groups (read more; the older plugin idea referenced: read more; the review-trigger overview: read more; dynamic groups: read more).
Self-hosting uploads: nginx config changes inside the container don’t persist—use app.yml / supported overrides. A 30MB PDF upload failed despite “512m” settings; the discussion moved toward durable config via supported mechanisms rather than editing container files directly (read more; the canonical “max upload size” instructions: read more).
Replacing Discourse search with SearchUnify: feasibility questions raised. A new thread asks whether the header search can be swapped or results can be delegated to an external enterprise search platform (read more).
Onboarding for returning (inactive) users: can “Welcome back!” be paired with a calmer UI?emyoulation proposed a less overwhelming experience for dormant users, potentially via theming similar to approaches used to simplify UI for newcomers (read more; related “hide elements for new users” discussion: read more).
Account compromise mitigation: admins want clearer UI for “nuke sessions / force reset” workflows. A self-hosted admin described needing Rails console for email/password/session control; responses debated what’s already possible in the admin UI vs what should remain “power-user” territory (read more).
Embedding Bunny Stream: allowlisting iframes solves it. The solution centered on adding Bunny’s embed host to allowed iframe settings and embedding via <iframe> as per vendor docs (read more).
“Can’t disable Solved after enabling” is getting a fix (UI refinement planned).martin acknowledged the report and linked an in-flight PR to address the issue (read more).
Chat settings disappearing when chat is disabled (reported in Chinese).sam confirmed the report and flagged it for investigation (read more).
What should doc category homepages show: index vs latest vs a purpose-built overview?mcwumbly and manuel debated whether clicking a documentation category should land on the index topic, latest list, or another “overview” experience—and noted sidebar scanning limitations (read more; referenced site management index: read more).
#Self-hosting
“What’s y’all’s workflow?”: how changes should move from dev → production in Docker installs. The thread reinforced that changes should be packaged as themes/plugins and deployed via standard workflows—not by copying production data from dev (read more; plugin installation docs: read more; theme installation docs: read more).
martin shipped a major usability improvement by announcing “Support” category type defaults built on solved (read more), and followed up on the “can’t disable solved” bug with an upcoming fix + PR link (read more).
sam clarified how localization is handled for PRs—English in the PR, automation/community handle the rest (read more), and did quick bug-triage check-ins on a profile-scroll issue (“does it happen in safe mode?”) (read more) and missing chat settings after disabling chat (read more).
chapoi supported troubleshooting on multiple fronts: asked targeted diagnostic questions on an iOS composer freeze report (read more), nudged toward solution-marking etiquette in a dev thread (read more), and confirmed there’s no built-in per-user “force approval” toggle while pointing to prior art (read more).
mae posted a new companion discussion for the Discourse blog on writing culture and how “writing is how we think” at the company (read more).
supermathie delivered a crisp solved answer for Bunny Stream embeds: use vendor iframe format and add it to allowed iframes (read more).
manuel continued the deeper IA/UX discussion around documentation category experiences—questioning how index topics, pinned topics, and category boxes overlap, and what the intended navigation model should be (read more; also in the focused UX spin-off: read more).
awesomerobot helped set expectations around theme component naming (“no enforced standard, but discourse- prefixes are common”) (read more) and corroborated the intermittent “composer becomes unresponsive” issue seen in app/PWA usage (read more).
Falco merged and validated progress on authenticated ICS feeds for private calendar events, then switched to debugging why Google Calendar shows “no events” (logs + an “old recurring events” feed-failure fix) (read more; follow-up debugging prompt: read more). He also reinforced best practice for deploying changes via themes/plugins (not backups) in a self-hosting workflow question (read more), and shipped a fix for an embeds edge case in the “comment platform” discussion (redirect URLs producing junk topics) (read more).
mcwumbly kept the meta-redesign/docs organization thread moving by responding to feedback about category box click targets and “index link” usability gaps (read more), and started a dedicated UX thread to decide what doc category homepages should be (read more).
dax followed up on a banner regression/workflow issue and confirmed admins should now be able to pin even Unlisted topics—removing the need for an Automation workaround (read more).
That’s a wrap—may your freshly-minted Support categories auto-configure flawlessly, and may your “Welcome back!” users return to a calmer, less clicky universe than yesterday’s iOS composer adventures.
lindsey published the March update in Current Projects - March 2026, covering shipping notes like blog-post styling becoming an official component (see also Blog post styling), higher hosted AI limits, and the rename from Personas to AI Agents — plus follow-up questions around translations for new official components (read more).
Small but important polish landed on the ongoing redesign: nat confirmed a fix was applied in Meta Branded redesign: theme refresh after reports of visual issues (screenshot + confirmation included).
Flagging UX feedback continued: in “Is this post something else or spam?”, peternlewis argued the newer wording makes fast “yes it’s spam” decisions harder, and suggested more action-oriented button text (with earlier wording ideas referenced in-thread: read more).
Discourse MCP + least-privilege API keys: aangi reported a blocker where granular API access can’t read about.json, causing a 403 during MCP startup in API user with granular access cannot read about.json | Discourse MCP — with the workaround being to switch to a global API key (undesirable for production).
Search expectations vs content reality: mbauman noticed the Guidelines/FAQ don’t surface in main search even for unique phrases, in Guidelines/FAQ not appearing in search results? — a discoverability papercut for “how does this community work?” questions.
david pushed Dev tooling forward by enabling the new plugin compiler by default in latest, announced in Introducing a new build system for plugins, and asked follow-up versioning questions in the long-running “bundling plugins” thread (read more).
Falco announced calendar subscription URLs that let users subscribe to Discourse ICS feeds (bookmarked reminders, plus events when the plugin is enabled) from Preferences → Calendar, and also introduced an API for plugins to register additional feeds via register_calendar_subscription_feed (calendar-and-eventbookmarks) — read more (Related: the core discourse-calendar plugin topic explains what gets unlocked when enabled.)
#site-feedback
A request to make try.discourse.org more “admin-like” (including reset behavior and access to mod/admin tools) was met with practical + security-focused pushback: allowing broad admin access is dangerous, and “default content” is intentional for a better sandbox experience — read more and the key security rationale read more (Related past discussion: “Try Discourse as a moderator/admin?” read more; and the suggestion to spin up your own instance via the free hosting beta read more.)
A usability gripe about the new Releases site being “too hidden” prompted immediate improvements: a dedicated releases URL exists, but discoverability from tags/footer was lacking; chapoi added links to the category banner and fixed the website footer redirect — read more and the implementation update read more (Related references: “Introducing releases.discourse.org” read more and the “January 2026 Releases” post that already links it read more.)
Housekeeping got more systematic: in the “collaborative content gardening hub” experiment, chapoi enabled an automation so that adding the fixed tag will schedule auto-closing after 3 days in relevant contribute categories — read more (Context: the ongoing experiment thread read more.)
Discourse formally deprecated .js.es6 file extensions in themes/plugins (after years of migration to .js), with removal planned after the next ESR window — read more (Related: the linked PR in the announcement read more.)
Discourse also deprecated .hbs templates in themes/plugins in favor of .gjs, with a timeline tied to the next ESR release; david clarified expected ESR compatibility in follow-up — read more and the ESR timing clarification read more (Related how-to: automated migration instructions read more.)
A real-world plugin breakage report (“Duplicate export” after updating to 2026.3.0-latest) was confirmed and fixed quickly via a core PR; LeoDavidson verified the fix solved the problem — read more and the fix confirmation read more (Related: new build system background read more.)
A dev-environment edge case surfaced: after the rollup compiler switch, plugin bundles (e.g. Chat) could silently fail if manifest entries were stale; investigation pointed toward timeouts in slower environments, and a timeout increase was proposed to improve reliability — read more and the root-cause direction (“timing out”) read more
A long-running UI nit (“search bar tips text replacement not applying”) got a crisp status update: it’s fixed via a merged PR, according to zogstrip — read more
A translation string/UX copy oddity (“Default LLM repeated in an error message”) was traced to awkward phrasing, and a PR was posted to remove the redundant prefix (ai) — read more and the proposed fix read more
Concerns about Discourse ID branding clarity continued: the Discourse logo/title can overwhelm the referring site’s identity, making it feel like users are being redirected to an unrelated service; suggestions focused on making the referring site’s logo/name more prominent and clearer about what metadata is used — read more
A search discoverability question revealed a common gotcha: the FAQ/Guidelines topic often lives in restricted #staff by default, so it won’t appear in search for regular users unless moved to a public category; there’s also discussion about static pages vs topics and what should be searchable — read more and broader thoughts on whether it’s desirable read more
A new admin wrestled with homepage/landing behavior and sidebar category display: guidance covered fixed_category_positions, reorder tools, default navigation menu categories, and the difference between /latest vs /categories; the “configure default sidebar” guide was also recommended — read more and the sidebar configuration pointer read more (Related guide: “Configuring the default sidebar for your users” read more.)
#self-hosting
A self-hoster asked for update notifications outside the web UI (email/filesystem/programmatic signals). The practical answer: enable admin emails for new versions (“new version emails”) and ensure SMTP + a contact email are configured; the underlying mailer code was also pointed out — read more and the mailer reference read more
#theme-component
The F NAV theme component hit an Android-specific failure after a Discourse update; a fix was merged and maintainers advised updating the component — read more (Related signal: a separate Android complaint thread suspected F NAV as the culprit read more.)
#data-and-reporting
A fresh DPA / contact-data usage inquiry asked for clear, current guidance on storage, sharing, retention, and compliance controls; the privacy policy link was pointed out as a starting reference — read more and the pointer to Discourse privacy info read more (Related older privacy discussion mentioned in the topic: read more.)
Falco shipped a major user-facing enhancement: calendar subscription URLs (Google/Apple/Outlook + copyable ICS links) and a plugin API to register more feeds — read more
He also validated UX improvements for deeply nested thread “context view” transitions — read more — and kept expectations aligned in the nested replies test thread — read more.
david drove several dev-facing updates: the .js.es6 deprecation notice — read more — plus the .hbs deprecation notice and clarified ESR timing — read more and read more.
He also delivered a core fix for a plugin build breakage reported by LeoDavidson — read more — and debugged devcontainer rollup compilation timeouts, proposing a practical mitigation — read more.
On the ops side, he confirmed how new version email notifications work and pointed directly at the mailer implementation — read more.
chapoi responded to feedback about release-site discoverability and implemented immediate navigational fixes (category banner + footer redirect) — read more.
He also operationalized the “gardening hub” workflow by adding an automation to close fixed topics after a short grace period — read more.
awesomerobot tackled UX papercuts: he posted a PR to remove awkward duplication in the “Default LLM…” error string — read more — and also provided a fix for German layout issues in AI cost configuration strings — read more.
markvanlan pushed early UX polish for the nested replies experiment, making it clearer when users are in a detached, deeply nested thread context — read more.
zogstrip closed the loop on a UI issue by confirming a fix landed for the “search bar tips text” regression — read more.
lindsey followed up on Current Projects – March 2026, noting she’s investigating how translations should be handled (Crowdin vs PR workflow) — read more.
That’s the day’s wrap: between rollup-powered plugin drama, “where are the releases?” detective work, and calendars finally getting their own tab, Meta managed to be both deeply technical and surprisingly time-aware.
Shauny proposed a smoother, per-post AI translation flow (ideally with a dedicated translate button and a way to save/cache translations to avoid repeated API costs), in “Translate post with AI and save translation” (translationai) — read more (with related context from an earlier “save translations” thread: read more)
With Patreon API v1 sunsetting pressure mounting, “Upgrade Patreon Discourse Plugin to API v2” got a concrete nudge: noertap asked for status and Falco said he’ll take a stab next week (and asked for testing credentials) — read more
Steradiant requested parity between OAuth2 and OIDC logins: an option to disable email verification for OIDC (similar to the existing “OAuth2 email verified” setting) in “Allow to disable email verification when using oidc” (emailssoopenid-connect) — read more
#Announcements
The calendar/events ecosystem got a big usability win: “Calendar subscription URLs for external calendar apps” shipped, enabling subscription links for external clients (calendar-and-eventbookmarks) — read more
A scary-looking admin error when creating API keys turned out to be plugin-related: Moin spotted the telltale dumbcourse_base_path, and removing the Dumbcourse plugin resolved it in “An error is occurring on the page where I am creating the API” (rest-api) — read more
Banner confusion continues: after upgrading, hellekin “lost” the banner topic UI, and Moin pointed out it’s linked to banners living in private categories (suggesting moving it public + unlisted) in “I just upgraded to the latest tag, and lost banner topic!” (pinned-topics) — read more (related: read more)
Hosted Patreon sync trouble: djwtwo reported a large mismatch between Patreon “active patrons” and Discourse group membership, plus failures and a seemingly inert “sync” button in “Patreon does not appear to be syncing on our instance” (patreonhosted-support) — read more
Form Templates validation edge case: required: true isn’t enforced for upload fields, letting users submit without files in “Required: true not enforced for upload field in form templates” (form-templates) — read more
ActivityPub + anonymity raised a privacy alarm: posts federate twice (one as anon, one as the real user identity) in “Federation doesn’t respect anonymous mode” (anonymous-modeactivitypub) — read more
UI regression report: failed “update” requests cause the Update button to duplicate, making the interface “literally unusable” in “Unsuccessful update replies cause the update button to duplicate” — read more
A deletion workflow bug in Chinese: after attempting immediate permanent deletion (within the 5-minute window), the post appears to “recover” and requires repeating the wait/delete cycle in “永久删除帖子时出现恢复删除的问题” (permanently-delete) — read more
#Plugin
A community-contributed gamification tool landed: “Discourse Daily Challenges” plugin adds time-limited daily check-ins, leaderboards, automated posts, and badges (gamification) — read more (install reference: read more)
#Theme-component
Rich-text editor parity friction surfaced again: mdoggydog released Composer Button Bonanza v2.0.0 and argued the ProseMirror text manipulation abstraction is incomplete (breaking this component), prompting renato to clarify intent and suggest using ProseMirror commands directly via rich-editor extensions in “Composer Button Bonanza” (composer) — read more
Self-hosters compared notes on bad crawlers / AI scraping defenses, with real-world Cloudflare rule examples and ethical concerns about Cloudflare’s clientele in “How self-hosted here are dealing with bad crawlers?” — read more
In “Featuring the referring site’s logo and name more prominently in Discourse ID” (discourse-id), nathank strongly endorsed improving how the referring site is presented—pointing out it matters in the UI and in emails — read more
Falco was active across product, integrations, and calendar work:
On AI translations, Falco explained that Discourse’s automatic translation toggle was explicitly designed to avoid the “manual translate UX nightmare” and repeated API costs raised in “Translate post with AI and save translation” — read more.
On Patreon, Falco committed to trying an API v2 update next week and asked for testing credentials in “Upgrade Patreon Discourse Plugin to API v2” — read more.
On calendars, Falco closed the loop on long-running requests by confirming “done” for iCal/Caldav-style subscription work, pointing people to “Calendar subscription URLs for external calendar apps” — read more. He also marked completion back on earlier feature threads like “Calendar plugin should offer ical export and caldav” — read more and “Category-level ICS/GCal link” — read more, and tied it into authenticated/private feed discussions via “Authenticated ICS feeds for private calendar events” — read more.
On the calendar subscription UI, Falco replied that corporate service options can be hidden with CSS in “Calendar subscription URLs for external calendar apps” — read more.
On rich text / HTML expectations, Falco advised sending Markdown rather than HTML (only a small subset is accepted) in “Comment faire pour que text rich interprete du HTML” — read more.
renato weighed in on rich editor API expectations:
In “Composer Button Bonanza”, renato explained that some legacy textarea-era abstractions aren’t intended to have full parity in the rich editor, and recommended using ProseMirror-native commands via rich-editor extensions when complex operations are needed — read more.
Yesterday gave us a perfect Discourse trio: translation “friction” debates, calendar subscriptions shipping, and at least one banner mystery—may your feeds stay synced and your buttons never duplicate.
Notable “recent-release” ripple effects showed up across the board, including theme update checks in bug (read more) and plugin build changes impacting Custom Wizard (read more).
Richie reported that after upgrading to Discourse 2026.3.0-latest.1, the admin UI showed every theme/component with an “Error cloning git repository” warning, even though manual “check for updates” cleared each one (read more; see follow-up details at read more).
A long-running thread about chat settings disappearing after chat is disabled (chat) continued with reports that chat can be enabled but still doesn’t show on the site; NateDhaliwal suggested testing safe mode, while Moin reminded that official plugins must remain enabled for safe mode to be meaningful (read more; safe-mode note: read more).
Calendar-related “uncaught (in promise)” investigations (calendar-and-event) evolved: Ethsim2 noted internal FullCalendar behavior improved, but the new ICS export endpoint appears to be rate-limited for external subscribers; a workaround using webcal:// and &after= was shared for keeping feeds lighter (read more; workaround: read more).
#Theme component
A new translation-focused theme component pitch, “G-Translate - Fast and easy translate your entire Discourse Forum for free”, got guidance on packaging: darkpixlz and Heliosurge recommended using the official theme skeleton + about.json so it’s installable and belongs in Customization > Theme component (read more; skeleton advice: read more; skeleton repo reference: read more).
“Composer Button Bonanza” feedback continued (composer): mdoggydog argued that richer parity for applyList() / applySurround() would help the component “just work” in the new rich-text editor, while acknowledging the complexity of bridging APIs into ProseMirror (read more).
#Feature
GaurangBlaze proposed a more graceful approach when upgrades fail due to low disk space: pre-flight disk checks + an in-UI prompt to clean old containers/images before starting, reducing downtime and avoiding UI-breaking 500s (read more).
AI translation ideas kept moving (translationai): “Translate post with AI and save translation” drew support for the overall direction from Eilgnaw (read more).
An early feeler for an open source Discourse mobile app template sparked interest and skepticism: darkpixlz moved it to a better-fitting category and pointed to prior native-client attempts (e.g. Forumate, FIG), while paco asked the key question—what can native do that mobile web can’t? (read more; prior attempts referenced: read more).
New-hosting onboarding hiccup (free-plan): multiple people reported site creation stuck at “Almost there…” and then “provisioned too many sites in the past hour”; ondrej suggested trying a different browser as a practical workaround (read more; browser workaround: read more).
ActivityPub language quirks (activitypub): Jagster described federation posts publishing in the original language while link text appears in English, and wondered if this is a DiscourseHub/ActivityPub expectation mismatch or a regression (read more).
Push notifications troubleshooting on self-hosted Discourse (notificationspush-notificationsios): Shauny reported iOS push issues affecting an entire community; RGJ noted iOS web push can be fragile and suggested the need for a dedicated troubleshooting guide (read more; fragility/context: read more).
#Announcements
The new calendar subscription URLs (calendar-and-eventbookmarks) kept generating real-world “multi-community” feedback: Thomas_Rother asked for group-filtered ICS feeds and for previously generated URLs to remain visible without forced regeneration; Falco challenged whether group-scoped membership already limits feeds and clarified copying/regeneration expectations (read more; Falco response: read more; continued discussion: read more).
Feedback on internationalization surfaced via the “Automatically apply grids to image uploads” announcement: stephtara arrived through the admin “upcoming changes” link and flagged that the French description was confusing (read more).
Theme skeleton maintenance concern: Moin noticed the theme-skeleton compatibility entry getting pinned again, referencing earlier discussion about why it was merged into the default skeleton and asking how to prevent repeats (read more; prior discussion referenced: read more).
Onebox debugging (onebox): gilles struggled to get YouTube links to render as oneboxes from plugin-generated content, then reported they resolved it by applying the correct onebox class (read more; solution: read more).
Admin flow polish request: after upgrading, the Dashboard still showed the old version until a refresh; peternlewis suggested better handling (e.g., a refresh banner) and merefield confirmed it happens occasionally (read more; confirmation: read more).
Composer UI alignment nit: Moin reported that tags appear too low in the “Your topic is similar to…” popup and identified a likely CSS cause (margin-top: 8px) (read more).
Falco weighed in on calendar subscription UX and expectations, questioning whether group membership already scopes feeds and clarifying that users can copy a single ICS URL for multiple clients (and regenerate if needed) in the #Announcements discussion on calendar subscription URLs (read more).
j.jaffeux responded in the ongoing bug thread about chat settings disappearing after chat is disabled, expressing confusion about the reported scenario and helping triage what may (or may not) be reproducible on a typical site setup (read more).
Yesterday’s theme-checkers, calendar-exporters, and disk-space worriers all agree on one thing: sometimes the only real upgrade path is “refresh, rebuild, and try again.”
A lot of the day’s momentum clustered around theme/plugin maintenance, outbound fetching/proxying concerns, and ActivityPub connectivity debugging—see threads like the theme git clone errors read more and ActivityPub connection failures read more.
Interesting Topics
#site-feedback
NateDhaliwal spotted a quirky formatting issue where topics in a topic-voting category show a stray comma after the last tags tag when the “0 votes” indicator is hidden; Moin traced it to a theme customization (read more) and pointed at the related customization discussion (read more), and awesomerobot shipped a quick adjustment (read more).
New version notification emails appear to have silently stopped for some sites; elmuerte suspected the CallDiscourseHub job is failing with a Redis command builder type error (read more), and david confirmed it likely traces back to a redis gem update and linked the fix PR (read more)—original report here (read more).
ActivityPub OAuth is acting up for Mastodon connections: sam hypothesized Mastodon started requiring a scope value (read more), and pmusaraj found Mastodon may have renamed scope to scopes, with a potential fix in progress (read more).
A fresh UI regression report suggests DiscoTOC’s “Contents” and “Timeline” buttons can float down to the bottom of the viewport depending on browser sizing (read more); this follows other recent UX polish items like “tags too low in similar topics” which already has a fix queued (read more).
Multiple admins on 2026.3.0-latest.1 hit “Error cloning git repository, access is denied or repository is not found” when updating themes; sam suggested removing/re-adding components and considered environmental/rate limiting factors (read more), while david leaned toward GitHub rate limiting or outages (read more).
Richie asked why Associated Accounts don’t show for staff users; the culprit appears to be staff 2FA requirements, with Moin confirming the behavior and linking prior guidance (read more)—question context here (read more) and the older 2FA-related thread (read more).
A DiscourseConnect “mystery configuration” landed from an inherited forum: bisley is trying to determine whether SSO settings are vestigial or active before making changes (read more), referencing the canonical setup guide (read more).
gilles reported a post-upgrade admin warning banner referencing discourse.resolver-resolutions; david clarified it’s not #gjs / #hbs related, and advised reporting to (or uninstalling) the plugin author since it looks like a demo plugin (read more).
#self-hosting
A security/privacy-minded thread asked how to prevent Discourse from leaking a host IP when fetching external resources (images/oneboxes/preloads) even behind Cloudflare; suggestions ranged from proxy-style helpers (read more) to running a dedicated outbound proxy like Tinyproxy and avoiding IP-forwarding headers (read more). The original concern (and why oneboxes matter here) is laid out in the opener (read more) and ties back to older proxy/preview discussions (read more) plus the Onebox Assistant crawl approach (read more).
A separate ActivityPub connection failure seems specific to the meta actor: rokejulianlockhart reported “Failed to verify client” when connecting to known instances (read more), and pmusaraj noted it repros for meta but not other actors, with ongoing investigation (read more).
#theme-component
Ivan_Rapekas released “AI Summary in Topic Header” (aiai-summarize), a theme component that surfaces the Discourse AI summarize button in the topic sidebar/title area depending on viewport (read more). This also acts as a practical follow-through on earlier UX requests about summarize placement (read more) and mobile positioning feedback (read more).
The long-running Restrict uploads theme component got movement: Moin opened a PR to switch restrictions from trust-level-based to group-based controls (read more)—a common request for subscription-style group gating.
Mobile affordances got another small-but-impactful request: ondrej proposed adding a grip bar to the post admin actions menu (matching the topic admin actions grip) to make it clearer the sheet is draggable (read more).
#plugin
A new plugin announcement, ImgLink, drew scrutiny: Moin called out spammy/unrelated tags and broken links in the initial post (read more), and darkpixlz removed the tags and noted the plugin doesn’t appear to implement the promised settings properly, pointing the author to the plugin skeleton (read more).
The Custom Wizard plugin thread saw ongoing troubleshooting around the rollup compiler setting; users reported ROLLUP_PLUGIN_COMPILER: 0 (without the DISCOURSE_ prefix) as a workaround, and david linked an upstream PR while warning the option won’t be around forever (read more). Context of the breakage/workaround discussion here (read more).
#feature
Table readability on laptops: robbie.morrison requested a non-editable “expand-table” wide-screen view for regular readers (mirroring the author-only table-builder wide view) to improve consumption of large Markdown tables (read more).
Theme maintenance ergonomics: ばこん proposed a dedicated “update themes/components only” workflow to avoid full core updates when you just want to refresh many components (read more). Related dev/admin friction continues around local tooling expectations for updates like format migrations (read more) and the newer branch-based versioning/compatibility strategy (read more).
Two notable “help wanted” requests appeared: a very large phpBB migration with ~870k posts and Hebrew RTL/SEO redirect requirements (read more), plus a hosted-plan request to bulk-create and auto-approve ~1,500 users via API without email confirmation steps (read more).
david helped triage multiple admin/developer pain points: he reinforced the GitHub rate-limiting/outage theory for theme clone failures (read more), identified the likely root cause behind missing version emails and pointed to the fix PR (read more), guided Custom Wizard users toward an upstream fix and warned about the short lifespan of the old compiler option (read more), clarified that a reported upgrade warning was a resolver-resolutions plugin issue (not #gjs migration) (read more), and reminded theme authors that .gjs auto-fixing should be done in a local dev environment (read more).
awesomerobot delivered quick UX/theme polish: they confirmed and resolved the topic-voting “comma after tags” regression caused by a customization hiding “0 votes” (read more), and also linked a fix PR for “tags too low in similar topic pop up” (read more).
zogstrip posted a run of “this will be fixed by PR” confirmations across features/bugs, including missing post URLs in ICS exports (read more), a “permanently delete” restoration issue (read more), and a form-templates bug where required: true wasn’t enforced for upload fields (read more).
pmusaraj focused on ActivityPub connectivity: they narrowed the Discourse AP connection issue to the meta actor (read more) and continued testing/reporting domain-to-domain failures (read more), while also identifying the likely Mastodon scope → scopes parameter shift and drafting a fix (read more).
sam added investigation threads and UX perspective: they suggested practical steps for hard-to-repro theme clone failures (read more), flagged ActivityPub OAuth payload scope changes as a likely Mastodon break (read more), pushed for a more humane end-user flow around “post pending approval” behavior (read more), and followed up on an “uncaught promise error” report to confirm whether anything is still broken (read more).
martin confirmed fixes for the “Easily create Support categories using the discourse-solved plugin” announcement thread, linking the PR that resolves the reported issues (read more).
That’s a wrap: may your theme clones avoid GitHub grumpiness, your ActivityPub scopes stay pluralized correctly, and your topic lists remain forever comma-free.
Noted “watched words linking” as a workable approach for wiki-style linking read more
Interesting Topics
#Extras
Eilgnaw unveiled Dexo, a native iOS Discourse client (UIKit/Swift) featuring multi-forum support, HTML rendering, syntax highlighting, and User API Key auth—plus notifications/PMs planned read more
The Discourse Discover roundup spotlighted communities where builders learn by shipping, troubleshooting, and helping each other (companion discussion thread) read more
Search behavior confusion around “exact” vs “semantic” matches got a concrete UX improvement: awesomerobot added messaging to clarify when AI/semantic results begin after limited exact matches (searchai) read more Related: the general search guide continues to evolve too read more
kirupa asked for a modern way to add custom links under the welcome banner; darkpixlz pointed to the Banner Featured Links theme component, while Moin dug into whether an older/deprecated banner component or plugin_outlet config might be the culprit read more Related:Banner Featured Links component read more, deprecated Advanced Search Bannerread more, and the earlier header discussion Moin referenced read more
A “move image/banner to the very top” question turned into a practical mini-walkthrough: darkpixlz suggested targeting .d-header .wrap, and Moin ultimately linked the best “how to apply custom CSS” primer (marked solved) read more Related:Brand Header component (often used for this kind of layout) read more, and the “Making custom CSS changes” guide read more
Banner management got a documentation tweak request: when creating global/dismissable banners, category visibility matters—emilio suggested making it explicit that banners must live in a public category (with unlisting as a workaround), and awesomerobot updated the instructions accordingly (pinned-topics) read more Related: the banner how-to doc being updated read more
#Plugin
The long-running Custom Wizard Plugin thread got good news: david confirmed a fix is merged and asked for re-testing with the rollup plugin compiler, with nesges confirming the Wizard is functional again shortly after read more
A nasty approval-queue edge case is under the microscope: lindsey reported that when a post is pending approval, clicking “New Post” can trigger a discard confirmation modal and effectively blocks posting elsewhere—while also noting the pending content remains in the review queue if discarded read more Moin added that seeing pending posts show up as “drafts” (instead of my/activity/pending) seems like part of the bug read more
A new Subscriptions bug report described failed renewals/updates for existing subscribers with a Stripe error, raising the question of whether stale/legacy payment state (including old Patreon history) should be purgeable (subscriptions) read more
“A payment method of type card was expected to be present…” read more Related: earlier “subscription update problem” history read more
Self-hosters using ActivityPub noted progress: pmusaraj confirmed the “cannot connect Mastodon AP” issue is fixed on meta (activitypub) read more
Anonymous participation UX was questioned: a proposal suggested making Anonymous Mode more visible (e.g., in the composer) and adding a clearer “you are anonymous” indicator/banner for easy switching back (anonymous-mode) read more
GIF search UX: Moin reported Klipy results appear to repeat indefinitely when scrolling (unlike Giphy, which bottoms out), and asked if Klipy could adopt similar stop/limit behavior (gifs) read more
A Chinese-language report flagged layout and localization issues on the webhooks admin page (/admin/api/web_hooks/new), including CSS constraints and untranslated UI strings (localization) read more
Theme/plugin developers continued adapting to template changes: the .hbs file extension deprecation thread picked up another “this needs updating” note as people reconcile older guidance with current expectations (dev-news) read more Related: downstream theme components hit by this include Prefilled composer link generatorread more and Classic About Statisticsread more
The “collaborative content gardening hub” experiment surfaced an automation surprise: adding a #fixed tag to an older closed topic caused it to reopen (apparently to set/refresh a closure timer), which Moin flagged as noisy/unexpected; chapoi confirmed it’s unintended and will look for adjustments read more Reference case: the reopened topic Moin spotted read more
awesomerobot improved search UX clarity by adding messaging that distinguishes semantic/AI results from exact matches in the search flow (searchai) read more, and updated banner documentation to note public-category requirements after feedback (pinned-topics) read more
david confirmed a Custom Wizard fix was merged and coordinated validation steps (including re-enabling the rollup plugin compiler) (pavilion) read more
lindsey documented the impact and reproduction details of a high-friction posting bug involving pending approvals and discard-confirmation behavior, plus follow-up on where pending posts show up (bug) read more
gerhard confirmed a fix for translation-context confusion (“removed” labeling) in the Translations area (#Translations) read more
sam did a cleanup/update pass on the “Searching for content effectively” wiki and then restored previously deleted content so improvements can continue via suggested edits (#Using Discourse) read more
chapoi acknowledged an unintended side-effect in the new gardening automation (tagging reopening closed topics) and plans to adjust the behavior (#Site feedback) read more
zogstrip engaged on a form-templates/sidebar bug report and floated a fix PR for review (bug) read more
Yesterday’s theme was “polish and ship”: between a brand-new iOS client, banner tweaks galore, and search getting clearer about what it’s doing, meta spent the day sanding down sharp edges so communities can glide.
Falco shared that Discourse has now swapped blog comments to a new embedded Topics-based system, and invited feedback on theme/padding and light/dark behavior in the rollout (read more, and follow-up details in read more).
A new free-plan signup hiccup surfaced: “You have provisioned too many sites in the past hour.” Staff jumped in quickly, and the thread narrowed down to a domain-specific quirk that resolved with a different domain value (read more, staff replies: read more, read more).
A newly created free-plan site couldn’t enable Discourse ID / social login, prompting staff investigation after reports of authentication-related settings shifting unexpectedly (read more, investigation: read more, follow-up question: read more). For reference, the Free Plan’s Discourse ID flow is discussed in the beta announcement thread (read more).
The ongoing nested replies experiment drew more UX feedback: users described how threading can reduce “replying to the wrong person”, but also how it can be hard to locate context—suggesting parent links (especially from notifications) to make nested context clearer (read more, parent-link idea: read more).
#plugin
A new plugin launch: Discourse Member Application proposes a structured pre-invite workflow for private communities, including a public /apply form and an approval flow that sends invite links automatically (read more). (If you’re new to plugin installs, the canonical how-to remains handy: read more).
Feature requests landed for Discourse Daily Challenges: support for weekly (or configurable) check-in intervals and allowing moderators/category moderators to create challenges, with discussion touching compatibility expectations with Calendar-style “week start” behavior (read more, weekly check-in clarification: read more, tag clarification: read more). The referenced calendar behavior comes from the core-included Calendar topic (read more).
A developer-workflow question: how to bootstrap the first admin in a dev container without outbound email. The thread highlights bin/rails admin:create and also a practical tip to use MailHog to capture outgoing email locally (read more, admin:create pointer: read more, MailHog tip: read more). The Docker dev setup guide discussed is here (read more).
A big milestone in Discourse’s JS modernization: support for inline <script> template tags has been removed in the latest Discourse version, as part of the long-running deprecation plan (read more).
Theme/plugin template cleanup continues: .hbs deprecation guidance was reinforced, with an extra note pointing developers toward ask.discourse.com for help when converting a small number of files (read more, follow-up: read more).
topic-timers got attention after reports that “Set Topic Timer may result in catastrophic failure.” zogstrip pointed to fixes being addressed via a PR (read more).
Oneboxes: a long-running frustration about broken x.com oneboxes and the inability to prevent them has a fix queued, again referenced by PR (read more).
Moderator tooling consistency: whispers only temporarily bump topics was called out as inconsistent, with a fix planned—plus debate about whether whisper activity should bump for broader audiences (read more, clarification: read more).
Email/digests: a bug where topics from ignored users still show up in digest emails is slated for a fix (read more).
#announcements
The “Upcoming changes” UI created confusion around Reporting improvements targeting—zogstrip clarified it’s a simple on/off toggle (“Everyone” vs “No one”), not group-scoped, and explained why the old “Staff only” option disappeared (read more). The opt-in mechanism itself is documented in the “Upcoming changes” announcement (read more).
#theme-component
The Prefilled composer link generator theme component was merged, but follow-up posts dug into a subtle tags data-shape issue (objects vs strings when reopening the composer) and how the component can defensively handle both while core work is in progress (read more, deeper analysis + workaround: read more).
Falco announced Discourse’s shift to embedded Topics as blog comments, shared live examples, and discussed early theme/spacing fixes as the experience is refined (read more, follow-up: read more).
HAWK acknowledged and escalated a Free Plan provisioning-rate error blocking new communities from being created (read more).
pedro helped troubleshoot the same Free Plan provisioning issue by requesting the exact community domain value used (read more).
zogstrip had a busy bug-fix and clarification run:
flagged fixes for topic timers failures (read more)
awesomerobot suggested using MailHog in dev to capture confirmation emails locally without configuring SMTP (read more).
sam updated documentation by removing obsolete composer popup messages in the guide (read more).
chapoi clarified Carousel mode’s fixed-height behavior and confirmed that custom CSS is the route to change dimensions (read more).
martin confirmed a bug fix was merged for a sidebar “Update Discourse” entry incorrectly appearing after changing a form-templates setting (read more).
rishabh investigated a Free Plan site where Discourse ID couldn’t be enabled, noting it didn’t appear widespread and asking what settings changes preceded the issue (read more, read more).
Yesterday Discourse embedded the comments, nested the replies, and tamed a few wild oneboxes—see you tomorrow for the next round of meta mayhem.
Ed_S raised concerns that v2026.3.0-latest.1 (with “33 security fixes”) felt like a stealth release, and asked for release posts to return to Announcements; david acknowledged the feedback and backfilled pointers to the new release flow in the follow-up release topics (stealth-release discussion, plus the backfilled pointers: February 2026 monthly release and March 19th 2026 intermediate releases). The thread also resurfaced older “dashboard advice” notification confusion (reference) and related version-display oddities (reference).
one1 asked for a built-in way to remove the default @moderators group from /about, aiming to show only “Active Mods”; nathank explained how about_page_hidden_groups can suppress certain members (or dynamically populate “not-active” groups), and suggested using the Discourse Dynamic Groups plugin to manage trainees cleanly (read more, plugin ref: Discourse Dynamic Groups).
On the free hosted plan, Naoshi wanted an “Announcements” category that’s read-only for topic creation but allows replies; Moin suggested a practical moderation workflow: require approval for new topics in that category, then simply don’t approve non-staff topics (read more).
A Marketplace request appeared from James_Bridges seeking a developer to integrate Discourse with Kajabi (membership tier syncing, migration, Disqus comment replacement, and “Facebook-simple” UX goals) (read more).
tobiaseigen noticed 2FA code inputs left-aligned when logging into Meta via an email login flow; awesomerobot identified the path-specific layout difference and linked an in-flight fix (read more).
meave spotted that typing :champagne doesn’t surface an emoji even though the rendered label says “Champagne”; Falco traced it to an alias/constant mismatch in the emoji mapping and suggested removing the conflicting constant entry (read more).
A Horizon theme/mobile UX issue: category descriptions can remain “sticky” and crowd topic lists on small screens; this was raised in a new UX thread (read more) and echoed as an older Horizon-theme behavior discussion where tradeoffs were debated (related).
#Feature
A feature request proposed adding .ics iCalendar attachments (or text/calendar parts) to event notification emails, so recipients can accept invitations directly in email clients; Falco pointed to newly improved calendar subscription syncing as a partial workaround, including the recent addition of event links in the feed (read more, related: Calendar subscription URLs).
#Self-Hosting
darkpixlz reported being unable to enable DiscourseID without force_https, due to redirect URIs requiring https; supermathie explained that DiscourseID expects correct proxy headers (or force_https) so Discourse consistently recognizes https requests (read more). This aligns with earlier DiscourseID fixes around key/redirect handling (related solved topic).
A CSS rendering issue was reported where tables without <thead> still render a “header divider”, making a <th> in <tbody> look like a header row; the reporter argued this contradicts expected HTML/CommonMark assumptions (read more).
A self-hosted report flagged the Chat plugin failing to compile under the newer rollup plugin compiler, throwing _assert is not a function during asset build (read more).
Another (Chinese-language) UI bug report described the welcome banner text color picker saving an invalid value unless the # prefix is manually added, suggesting inconsistent color handling in the admin UI (read more).
Devs discussed improvements to icon configuration: there is now an icon-type SiteSetting (reducing foot-guns when configuring icons), with follow-on implications for places like reactions and icon discovery/documentation (read more, related: Reactions + free icon prefixes, and icon-link/placeholder ergonomics discussion: FontAwesome placeholders in setting descriptions).
#Plugin
The Discourse Challenges plugin v1.2.0 shipped changes like daily/weekly intervals and moderator access, but a user reported 500 errors when creating challenges; the maintainer requested logs and version details to triage (release + troubleshooting thread).
Falco participated across UX and feature threads: he responded to the security-fix/release discussion (reply), proposed a fix for the :champagne emoji alias issue (emoji mapping note), and guided the calendar .ics email request toward subscription URLs and recent improvements (calendar feature discussion, follow-up: event link now included). He also hit a blocker while working on the Patreon API v2 upgrade due to Patreon’s client form not enabling submission (Patreon plugin upgrade thread).
awesomerobot investigated a Meta login-flow-specific 2FA layout bug, identified it as tied to email login, and pointed to an upstream fix (2FA alignment thread).
supermathie clarified that DiscourseID redirect URIs must be https, and that correct proxy/https signaling is required (not just “it works in the browser”), responding with concrete evidence from the reporter’s config screenshots (DiscourseID + force_https thread).
martin posted an update on planned refinements to admin reporting visibility options (“Staff only” / “No one” in places where “Everyone” doesn’t fit) (Admin Reporting & Analysis update).
chapoi weighed in on the Horizon theme’s sticky category header container behavior, noting it was a side-effect of keeping navigation visible and inviting contributions if someone can untangle the container relationship (Horizon sticky header thread).
If yesterday taught us anything, it’s: announce your security releases loudly (read more), keep your 2FA boxes centered (read more), and never make people type :cork: when they really mean :champagne: (read more).
mcdanlj questioned whether the new release workflow on releases.discourse.org is a functional replacement for Meta release highlights—flagging missing notifications (RSS), readability/contrast issues, and “git-log-as-UX” concerns; david responded with clarification and shipped an RSS feed quickly (read more, RSS now live, highlights explanation).
#Plugin
Discourse Daily Challenges hit real-world upgrade friction: badge-name validation issues, “update button doesn’t run migrations,” a missing challenge_timezone column, and a workaround that ended with a confirmed “It Works”; the thread reads like a mini incident report + recovery playbook (read more, missing column diagnosis, successful resolution).
The long-running Formatting toolbar plugin thread got a sobering update from Boost, who is now looking for a replacement after years of community use (read more).
A “why won’t Meta notify me?” report turned into a quick refresher: manuel pointed out that per-topic notification level (e.g. Watching) and global tracking preferences both matter (read more).
Topic-list filtering limitations came up again: TimJensen wanted category:X OR tag:Y, but today’s answer is still “no boolean OR,” with pointers to existing filter/search syntax and docs (read more, Searching effectively, Filtering topic lists).
Android app users reportedly can’t type because the keyboard never appears when composing; NateDhaliwal asked for version details and safe-mode testing to narrow down whether it’s app-side or site-side (read more, triage questions).
A deep self-hosting/email guide got refined: LotusJeff updated the Cloudflare write-up with clearer options + trade-offs, plus suggested a doc footnote to save future readers time (read more, linked note).
#Theme component
The “big red banner” (broken theme/component alert) prompted an admin to ask how to hide it; the community response was “don’t hide it—fix the cause,” and the underlying Chat Sidebar component received a fix shortly after (read more, team warning, fix pushed in Chat Sidebar).
A theme-layout question about moving a logo/content into the header area landed on a clean solution: use the before-sidebar-sections outlet, with a pointer to the theme outlet tutorial (read more, Theme Developer Tutorial: outlets).
A sharp diagnosis explained why Discourse can render as unstyled HTML inside Facebook’s iPhone in-app browser: crawler detection mistakenly matches facebook in the UA string; david followed up by opening a core PR to use a more specific identifier (read more, core PR mention).
A data-loss report: composing a long post and uploading HEIC images triggered an error + reload, and the draft was lost; the topic is a reminder that “draft safety” is only as strong as error paths during uploads (read more).
A potentially serious self-hosting symptom report claimed “all plugins not functioning” (including core features like User Notes and even docker manager UI), forcing server-level updates; rollback is being considered if no root cause emerges (read more, with historical reference to the related rollup/dev discussion: read more).
#Self-hosting
Version pinning and “how do I deploy older Discourse versions” continued: guidance emerged about using containers/app.yml (not editing templates), how tags/branches are resolved, and a hard warning that downgrades aren’t supported—so “accidentally moving off ESR” can be painful (read more, team clarification, downgrade warning).
A pointed critique argued that update regressions and “web-based update killers” are reaching admins too often, asking what processes exist to catch them earlier; it references past incidents as examples (read more, upgrade abort example, migration break example).
#Feature
A UX request in French highlighted a chat limitation: with the GIF component, you can’t post a GIF and text together in one message; Falco clarified it’s long-standing behavior and moved it to Contribute > Feature (read more, recategorization).
david was highly active on release communication and usability: he explained how curated “Highlights” work on changelogs (read more), confirmed openness to usability-driven changes and pointed to open-source PRs (read more), and then announced the new RSS feed was already live (read more). He also strongly discouraged hiding broken-theme alert banners (they’re “big and red for a reason”) (read more), followed up with a core PR direction for the Facebook iPhone in-app browser crawler-detection bug (read more), and clarified correct self-hosting version-pinning practices + downgrade risks (read more, read more).
derek chimed in on the releases site thread to acknowledge styling/accessibility feedback and incorporate it into upcoming brand refresh work (read more).
manuel helped troubleshoot “missing notifications” by pointing to per-topic notification levels and user preferences/tracking settings (read more).
supermathie clarified a common misconception: force_https doesn’t control whether Discourse serves on port 443; it changes what Discourse assumes about access scheme, which matters for CSRF/session behavior behind proxies (read more).
Falco gave practical self-hosting guidance (“fix your reverse proxy and get proper HTTPS working”) in a DiscourseID setup issue (read more), redirected a chat GIF behavior report into the right funnel (Contribute > Feature) (read more), and confirmed the Patreon API v2 fix is working and queued for merge—with an extra improvement to set a distinct plugin user agent for debugging (read more, read more).
zogstrip improved emoji hygiene: they added a validation step to avoid creating aliases for emojis that don’t exist, backed by a discourse-emojis PR (read more).
mcwumbly nudged documentation cleanup: they pointed out how “Upcoming Changes” can be used to opt into the FAQ→Guidelines rename, and aligned the thread toward updating official docs as the main action (read more, with related context in Renaming FAQ to Guidelines and Using Hidden Site Settings).
chapoi answered a theme/layout question with a targeted outlet recommendation (before-sidebar-sections) and linked the relevant tutorial (read more).
Danielle quietly did necessary housekeeping by creating/refreshing the “About the Events category” topic, clarifying scope for webinars and office hours (read more).
If yesterday had a theme, it was “fix the root cause”—from big red banners being resolved properly to missing DB columns getting chased down… capped off with a well-earned victory dance in the Daily Challenges thread.
darkpixlz traced “plugins not functioning” symptoms to a likely CDN/CORS failure, suggesting a targeted test to confirm the root cause before chasing plugin bugs in “All plugins not functioning” (with TomoftheFog planning weekend tests read more).
A migration/admin workflow question came up around moving group inbox messages, with pointers to bulk topic-moving capabilities in “Transfering inbox group messages to another instance?”, referencing the how-to on moving topics between instances read more.
Deploy/version-management troubleshooting continued with a YAML indentation gotcha while reviewing older-version deployment attempts in “Help deploying older versions of Discourse”.
A site feedback thread highlighted theme aesthetics, category organization, and small UX polish (including a mobile header-links CSS snag) in “Opinions on the forum I’ve built” and follow-ups like the mobile layout note read more.
A composer/data-loss report described lost paragraphs / unexpectedly huge posts tied to uploading HEIC images, with awesomerobot steering toward reproducible steps (text volume + same images) in “Lost paragraphs / huge post due to HEIC upload”.
A copy/flow mismatch was flagged: the system DM suggesting “reply to this message” during revision requests appears to route replies into a void (no admin visibility / reviewable linkage) in “‘reply to this message’ goes nowhere?”.
Ongoing housekeeping for built-in guidance links continued, including a reminder that “Upcoming Changes” itself may be gated behind a setting, discussed in “Review and update topics related to FAQ & Guidelines links” with the referenced “Upcoming Changes” feature intro read more.
A long-running styling/regression thread noted category images being forced into a squashed square; the workaround path is CSS-based if core behavior doesn’t change, as discussed in “Tiny category image”.
Maintenance + a new quality-of-life feature landed for intersection-based navigation: banner notifications without leaving intersections, in “Tag Intersection Navigator”.
A lightweight maintenance check-in suggested the “MD Topic List Mobile component” is still holding up, with an invitation to report breakage in “MD Topic List Mobile component”.
davidb shared a concrete fix path for the search autocomplete override issue, pointing to an implementation that should resolve it once merged in “Autocomplete overrides first choice…”.
With CDN mysteries, “Disconite” naming debates, and autocomplete fixes in the mix, today’s meta energy was equal parts detective work and delightful bikeshedding.