canbekcan introduced Discourse Plugin Cleaner, a tool to audit/remove orphaned plugin residue; merefield raised concerns about safely detecting plugin-owned tables and avoiding accidental deletion of core custom fields, with follow-up caution from pfaffman about the non-zero chance of breaking a database state (read more). Related install guide: How to install plugins
Discourse Daily Challenges shipped v1.4.0 with “ChallengeBot” for DM confirmations, reminders, and mention-driven stats; follow-up questions explored whether mentions can respond in-topic vs DM-only (read more)
The Landing Pages plugin surfaced an admin warning (discourse.resolver-resolutions) indicating it “contains code which needs updating”, suggesting maintainers may need to bump compatibility for recent core changes (read more)
A configuration gotcha: AI translation is not translating 1:1 PMs (even when the UI implies translation progress is complete). Moin clarified current behavior and Falco floated changing the boolean setting into a more explicit targets menu (public topics vs all topics vs group PMs vs all PMs) (read more)
A “how do I build this sidebar?” theming question turned into a quick identification: the screenshot matches the Discourse Doc Categories experience, pointing admins toward the plugin rather than custom CSS/theme work (read more). Reference: Discourse Doc Categories
paco dug into how root-level routes like /faq, /privacy, and /about behave (including when must-be-logged-in is enabled), and whether admins can create similar first-class paths; one suggestion was to publish additional static pages via a topic-to-page workflow (read more). Reference: Page Publishing
After updating to a recent build, RBoy saw Google Search Console “acceptedAnswer” warnings appear on an older FAQ-like page, and asked what changed to trigger it now; the report references prior guidance that unsolved topics set answerCount to 0 (read more). Background: acceptedAnswer / suggestedAnswer discussion
In the #mcp-tagged MCP/API thread, a granular-access API user couldn’t read about.json, yielding an “invalid username/key” error; supermathie questioned whether the error text is misleading and worth improving (read more)
A long-running “print/export” need resurfaced: exporting a single post (e.g., wiki meeting notes) as PDF for sharing into other tools; the discussion points back toward a theme-component approach as a practical solution (read more)
A UX/CSS papercut: tiny category images were fixed with custom CSS, but CharlesGWaldman argued the underlying change (an aspect-image behavior shift) caused unnecessary breakage and should be reconsidered upstream (read more)
Multiple admins reported plugins breaking due to CORS errors after a recent upgrade, especially when using BunnyCDN; one workaround attempt involved tweaking Bunny’s CORS handling for JS assets, but the “why did this start now?” question remains front-and-center (read more). Related: Code highlighting failed because bunny.net CDN
A governance/security question: can Discourse admins be restricted from backups/exports via the UI? Replies emphasized the “admins have absolute control” model, while noting env-defined settings may override/hide UI toggles and pointing to standard automated backup guidance (read more). Reference: Configure automatic backups for Discourse
The new releases site got a detailed accessibility/contrast review, with ferdnyc measuring WCAG contrast ratios and listing several failing combinations (e.g., white text over --color-feature), calling for urgent fixes and a broader accessibility audit (read more)
#Site feedback
In the Meta Branded redesign feedback thread, stephtara reported that linked text on the dark theme is “just below readable,” comparing against other themes (Fondation/Horizon) that remain legible (read more)
A recurring restriction prompted a workaround: unable to download .js attachments (for legitimate non-browser uses). One admin reported success by moving uploads to S3-compatible storage and enabling CDN URLs to bypass the short-url controller path (read more)
Falco engaged in the aicontent-localization discussion about PM translation limits, proposing a clearer setting model (switching from a boolean to an option menu to explicitly include/exclude group PMs and 1:1 PMs) in AI is not translating PMs.
Moin shared a hilarious-but-painful list of AI tag translation misses (e.g. tablet → “pill”) and flagged a serious problem: different tags collapsing into the same translation, breaking discovery in localized UIs (read more). The follow-up explored improving prompts and grounding translations via context and existing localization decisions (read more), alongside the wider rollout note that translated tags are now live (read more) and the broader localization feature set (read more).
The Meta branded redesign theme refresh continued: manuel acknowledged color/usability concerns and pointed to a cleaner path forward now that themes can constrain available color schemes (read more). A side-thread ended up being a great reminder that “theme weirdness” can come from outside Discourse—one report was traced to an unrelated browser theme leaking CSS into Meta (read more).
#feature
In aicontent-localization, troubleshooting why AI translation isn’t translating PMs turned into a preview of upcoming controls—shifting from “public-only backfill” toward explicit toggles like Translate PMs plus “translate these categories” targeting (read more). The related feature request for category-scoped translation was referenced as “coming soon” (read more).
A localization workflow gap was spotted: when a category name changes (e.g. “Installation” → “Self-hosting”), the translated category name may not update automatically, leaving localized UIs stale (read more). This tied neatly into the active push to make dynaloc behave more predictably across the product (read more).
Another dynaloc request: when the translated “About this category” topic gets updated, the category banner description in that language may still show deprecated text—suggesting the banner’s source field isn’t being refreshed on translation updates (read more).
The tag-icons ecosystem hit a localization snag: tag icons don’t reliably work with translated tag slugs, so the icon meaning can vanish just when localized tags are most needed (notably for ai clarity) (read more). This complements broader “translated tag behavior” questions and bug reports (read more).
A settings expectation mismatch got clarified (and reclassified): “Use name for username suggestions” doesn’t affect the local signup form—it only applies to SSO/OAuth flows—so the setting text was updated to reduce confusion (read more). The discussion also spun off into “should local signup be able to prioritize name→username?” (read more) and echoed related “hide/normalize username field” constraints on hosted plans (read more).
Google Search Console reports surfaced a structured data issue: acceptedAnswer errors appear to be linked to recent work that inadvertently exposed a bug; a fix is already queued (read more).
Translated tag UX got thorny fast: when localized autocomplete suggests translated tags, inserting them can result in non-linking hashtags and missing tags, making it unclear what “translated tags” are supposed to do in composer/search/tagging flows (read more). This overlaps with earlier reports of localized autocomplete behaving inconsistently depending on context (topic list vs composer vs hashtag autocomplete) (read more).
A puzzling image zoom issue (“Image could not be loaded” only when clicking directly, but not when navigating via arrows) looked account/session-specific—incognito worked—so troubleshooting focused on safe mode, cache, and “try an alt account” isolation (read more).
#self-hosting
A bootstrap failure during db:migrate (relation "ai_agent_mcp_servers" does not exist) turned out to be an edge case caused by a migration ID collision—notably linked to AI-assisted migration generation producing date-stamped collisions across repos (read more). The resolution included guidance to avoid “suspiciously round” timestamps and a concrete workaround using a new migration version (read more).
A self-hosting upgrade procedure check-in covered “rebuild vs rebuild-in-place” and how to think about release vs latest vs ESR choices—especially the practical reminder that downgrades aren’t supported (read more). The recommended background reading was the release channel explainer (read more) plus how to configure tracking branches (read more).
A post-upgrade “all plugins broken” incident was traced to CORS + script type="module" requirements in the newer plugin system; once CDN headers were corrected, everything returned to normal (read more).
Rails ecosystem maintenance: a PR adding Sidekiq 8 support to mini_scheduler was merged and released quickly, unblocking dependency upgrades for downstream apps (read more).
nat dug into localization quality issues around AI-driven tag translations and next steps for improving prompts/context (read more), proposed predictable ways to inject more context into translation calls (read more), and outlined upcoming configuration improvements for category-scoped translation controls while troubleshooting PM translation behavior (read more). nat also posted the progress update that translated tags are now available (read more).
Falco proposed a “give the agent tools to fetch context” approach to improve tag/category translations (read more), endorsed combining multiple grounding strategies (read more), and expanded on why using existing translations and limited code search can materially improve outcomes for enumerable strings (read more)—while still arguing against disabling machine translation for key areas on Meta (read more).
david helped debug a self-hosting bootstrap failure by checking migration ordering and asking for evidence the table-creating migration ran (read more), then identified the underlying AI-related migration collision dynamic and asked how to ensure real timestamps going forward (read more). david also clarified why plugin CORS issues appeared “suddenly” due to the gradual move to type="module" (read more), confirmed successful resolution of tag/branch deployment confusion in the older-versions deployment thread (read more), and merged/released Sidekiq 8 support in mini_scheduler (read more).
zogstrip connected an ecosystem bug (404s on /llms.txt-style root routes) to an in-flight core fix (read more), clarified the constraints behind the “use name for username suggestions” setting and updated its description to match actual behavior (read more), shipped a fix for the “can’t unfollow banned users” edge case via the official follow plugin (read more), flagged intended vs actual behavior in recurring event attendance semantics and linked a fix for attendee management permissions (read more), and confirmed a fix path for Google Search Console’s acceptedAnswer errors (read more).
sam confirmed a missing Ember route causing root-level links to misbehave in-app (similar to safe-mode quirks) and suggested tracking it properly (read more), then reinforced why fixing /llms.txt routing matters as it becomes more widely linked (read more).
manuel continued iterating on Meta’s redesign theme, acknowledging color issues and describing how a new theme modifier removes the need for a hard-coded color-scheme hack (read more), and followed up on a suspected link highlighting bug by requesting inspection details (ultimately traced to external CSS) (read more).
martin pointed to a prior removal/cleanup relevant to FAQ & Guidelines link behavior (read more) and provided guidance on enabling “solved-style support category creation” via category settings, noting future UX improvements are planned (read more).
schleifer clarified that a reported Discourse CDN domain with an invalid SSL cert had been retired years ago, and directed the reporter toward support escalation if a hosted site was still referencing it (read more).
awesomerobot acknowledged a Horizon theme layout blocker during category creation and linked an upcoming fix via core changes (read more).
HAWK moved a confusing signup behavior report into bug and documented reproduction details on try.discourse.org (read more), clarified hosted-plan limitations around CSS-based registration form customization (read more), and pointed to known behavior where scheduled-post publishing doesn’t trigger mention notifications as expected (read more).
If today taught us anything, it’s this: may your migration IDs be unique, your CORS headers correct, and your German tablet never again translate into medication.
Discourse 2026.3 shipped:david posted the March 2026 monthly release announcement with links to the full changelog and patch releases, and Ed_S confirmed smooth upgrades and RSS/email visibility on their side — read more.
Calendar subscription sync expectations: folks using subscription URLs noticed edits/deletions don’t appear instantly; Falco clarified Google Calendar typically refreshes about twice per day, so changes can take hours — read more.
Theme/plugin template deprecations sparked strong feelings: the ongoing move away from .hbs prompted pushback, while others pointed to auto-conversion tooling and past deprecation runways — read more. (Related: the “auto-update to .gjs” guide was referenced as a path forward — read more, plus earlier compatibility discussions like the FA6 upgrade thread — read more.)
.js.es6 filename deprecation (again): discussion reiterated that most cases are simply renaming files to .js, and awesomerobot offered to help update open-source plugins via PRs — read more.
API regression report: a script using the REST API began returning 400 errors with the all-users scope, breaking previously-working automation (user creation + liking) — read more.
#Feature
Review Queue UX: “helpful flags” should be clickable: admins spotted that “helpful flags” lacked a link/filter path; awesomerobot opened and merged a fix so it’ll land in upcoming updates — read more. (The same report was also raised in ux form — read more.)
Limit AI translation to specific categories:nat linked a PR implementing category targeting for translations, aiming to reduce “translate everything” blast radius — read more. (This ties into broader localization workflows and documentation — read more.)
Email-in for automatic groups: a request argued that blocking incoming email for automatic groups is confusing (UI hides the setting), forcing awkward “shadow group” workarounds — read more. (Prior art includes staff-group email-in expectations — read more and a Rails-console workaround thread — read more.)
#Community_Building
Real-world multilingual community operations: a private community considering Spanish/French/Portuguese support asked for rollout strategies and realistic expectations about machine translation quality — read more. (Team examples pointed to live multilingual usage, including a French chat discussion — read more and a Chinese-language topic example — read more.)
“Ongoing translation” experience (original + translated side-by-side): a detailed request described an AU-scale multilingual need (Anglophone/Francophone/Lusophone/Arabic) and asked for automatic dual-display and paragraph-level translation; Falco noted native content localization covers most needs, but chat translation isn’t there yet — read more.
Chinese-language “Oops” after switching to ESR: a self-host rebuilt started throwing generic errors after setting version: esr; david identified this as a downgrade scenario (unsupported) where the DB schema no longer matches older code, requiring backup restore or returning to latest — read more. (Related upgrade/process discussions continue elsewhere — read more.)
Chat plugin build failure with rollup: a report about _assert is not a function remained unresolved; david asked whether any local patching/customization might explain why it’s not widely reproduced — read more.
Topic Voting plugin: missing vote tallies + broken voting after upgrades: a site on 2026.4.0-latest reported vote history disappearing and users struggling to vote; logs mention tag param deprecations and multiple bundled plugins (Reactions, User Notes, Calendar, Solved) were suspected — read more. (Troubleshooting also referenced a “everything broke” pattern like CORS issues affecting all plugins — read more, and Meta’s own voting UI changes were noticed — read more.)
Translated categories vs translated tags behave differently:Moin noticed category names switch to the interface language immediately, but tag translation seems tied to a separate toggle (topic/post translation), creating inconsistent mental models — read more.
Events revamp: clearer “Webinars” vs “Office Hours”:Danielle outlined a new structure for announcements, replays, and where to find everything in the events category going forward — read more. (A related events thread also had quick fixes to confusing displayed times — read more.)
david shipped the 2026.3 release announcement and linked patch trains — read more; helped debug a chat build/compiler error by probing for local customization — read more; and resolved a self-host “Oops” incident by explaining why downgrading to ESR is unsupported due to schema drift — read more.
Falco set expectations on calendar subscription refresh cadence (Google Calendar updates ~2x/day) — read more; shared real-world multilingual implementations while discussing how to run a multilingual community — read more; and clarified that content localization covers most translation needs except chat (for now) — read more.
nat connected multiple translation-related threads to the same implementation work, posting a PR for category-scoped translations — read more and explaining how translation settings will migrate for PM/public content behavior — read more.
awesomerobot unblocked a Review Queue UX gap by opening (and merging) a PR to make “helpful flags” link properly to the “Flagged by” filter — read more; and offered hands-on help updating plugins impacted by deprecations (especially extension renames) — read more.
Danielle clarified how Discourse will organize Events, webinars, office hours, and replays — read more; and quickly fixed a confusing event time display after it was reported — read more.
renato noted a recent editor change: the rich editor now consistently serializes closed [details] blocks regardless of current open/closed state, and asked for further reports if issues persist — read more.
sam weighed in on an AI/migration workflow issue, suggesting that a lint-like guardrail might prevent recurring migration filename/id mistakes — read more.
j.jaffeux revisited a recurring-events edge case (“going” attendance not resetting), pointing out limitations stemming from not having per-date event entries — read more.
Yesterday’s vibe check: Meta managed to ship a fresh release, chase down translation ambitions across continents, and still find time to remind everyone that downgrades bite—a pretty classic day in Discourse-land.*
Real-world calendar subscription testing brought feature-completeness questions to the surface: permissions-aware expectations and “show until revoked” ergonomics were discussed in Calendar subscription URLs for external calendar apps (calendar-and-event). Follow-up troubleshooting noted a key dependency on Discourse post event enabled (read more).
Project-status coordination got a quick pulse check: lindsey noted progress (pending a teammate returning) on translation support for blog styling components in Current Projects - March 2026 (current-projects).
A behind-the-scenes multilingual retrospective dropped: nat posted Building for Every Language, covering how Discourse’s multilingual support evolved over 13 years in Building for Every Language. It dovetailed nicely with today’s separate translation logistics discussion in plugin-land (read more).
A spooky “presence” glitch was resolved with a simple toggle: admins seeing an infinite “is replying…” indicator were advised to flip Presence enabled off/on; the workaround was confirmed successful in Infinite ‘is replying…’ bug? / Presence plugin (confirmation: read more).
AI bots throwing { "error": "Not found" } turned into a practical configuration walkthrough: a likely deprecated Gemini model ID/URL was flagged, and updated model URL examples were provided in Issue with AI bots forum bots (ai, ai-bot), including recommended alternatives for text vs image generation (read more).
A “banner that won’t unpin” mystery ended up being theme-related: after safe mode removed the banner, the thread concluded it was coming from a theme/component rather than a pinned-topic banner, and the admin found the right setting in How to Unpin this Topic from Banner Area (solution path: read more).
Requests for integrated “/rules” and “/apply” pages (without /pub) surfaced again: page publishing didn’t match the desired “native tabbed layout” feel in Creating custom pages like “About” and “FAQ”. A practical alternative suggested the official landing pages approach in Landing Pages Plugin, while the original request referenced Page Publishing.
Search quality concerns appeared in a new report: exact title-word searches failing in a multilingual site (plus a 500 when semantic search embeddings are enabled) was raised in Search not finding topics by exact title words (search).
davidb identified the likely culprit for the mobile regression as a recent change in discourse-tag-icons and noted a temporary revert while the root cause is investigated in Some Meta topic pages borked on mobile viewport.
david pulled together the “why” and “what to do next” for CDN-related CORS/ES module issues after the plugin loading changes, including the need for a full rebuild for NGINX config changes, in All plugins not functioning due to CORS error after recent upgrade and followed up with additional guidance added to the canonical explanation (read more).
Yesterday’s highlight: between fullscreen “site seizure” splash screens and brand-new full-app embeds, Meta managed to both startle and ship—may tomorrow’s deployments cause fewer heart palpitations than Full Screen Cover Image.
Moin noticed tag banners were suddenly missing their tags (very empty vibes), and awesomerobot confirmed it was caused by a core data change and quickly shipped a fix for the tag-banners component (fixed) — read more (and the “back to normal” confirmation: read more).
RGJ reported that the Category Experts plugin can crash user merges due to validations while merging via CLI; zogstrip linked a fix in progress for category-experts — read more.
hel_Sinki flagged a high-severity backup failure to Cloudflare R2 during multipart upload (undefined method 'downcase' for nil) affecting S3-compatible backup storage; pfaffman shared a pragmatic gem-pinning workaround and confirmed it’s a recurring “S3-compatible” edge case — read more (workaround link drop: read more).
putty shared screenshots of German translations leaking “AI commentary” (thought process text) into the output, including cases where German posts look odd when viewed in English — read more.
A theme-component gotcha: Topic List Previews (TLP) broke sites on 2026.1.3 ESR due to a missing compatibility pin; RGJ provided a PR and mitigation steps, and merefield merged quickly — read more.
davidb noted a fix landing for group dropdowns not refreshing correctly after new groups are created, pointing to the resolving commit (fixed) — read more.
Jesse_Starks reported a weird iPad Safari composer jumping to the top (breaking buttons and resizing) that later became hard to reproduce; early suspicion pointed at theme interactions (Horizon/Foundation) — read more.
Ed_S found that hitting an old numeric tag URL (/tag/6309) throws a 500 instead of a 404/redirect, triggering Google crawl errors; supermathie included the stack trace and suggested better fallback/handling — read more.
Eviepayne highlighted an MFA rollout pain point: enforcing MFA can “lock” logged-in but unenrolled users onto security prefs, preventing them from reading the very guidance topic they need; they requested richer admin messaging (and noted “passkeys are MFA”) — read more.
On docs navigation, nickrsan explored what the “homepage” should be for doc categories, discovering a larger rework in progress for doc-categories and asking how an “index topic as home” option might fit with upcoming “Simple Mode” work — read more.
#Feature
A long-running gamification request got fresh momentum: Falco is investigating per-leaderboard scoring values and shared a first draft PR direction for gamification — read more.
sam and Falco discussed whether AI personas/agents should respond only to explicit @mentions (rather than replies), with a lean toward avoiding “option paralysis” and instead leaning on upcoming workflows — read more (Falco’s workflow angle: read more).
Moin proposed improving localization polish: tag icons don’t appear for translated tags inside tag banners, especially in combined category+tag headers (new request tying together tag-banners + tag-icons + content-localization) — read more.
#Announcements
lindsey announced a quality-of-life improvement for support: people who are Tracking/Watching topics in a Solved-enabled support category now get a notification when a topic is marked solved (with a user preference to disable) — read more. (Related background: Solved plugin read more and “support categories” guidance read more).
The new embedding work drew UI feedback: in the “full comment system” embed, Tris20 suggested making scrollbars and “Reply to Topic” affordances more obvious to prevent accidental replies/notifications; mcmcclur echoed concerns that some UI elements may be too subtle — read more.
In multilingual land, mcwumbly praised the storytelling (and years-long payoff) behind Building for Every Language, calling out how discussions mature over time and tying it back to the “magical multilingual features” — read more.
On the AI tooling front, Falco added an “edit existing posts” tool to Discourse MCP, responding to requests for wiki/post updates via LLMs (and hinting at broader “remote web MCP” thinking) — read more.
Investigated and shipped the fix for missing tags in tag banners (core change impact → plugin update merged) — read more.
Pushed a UX improvement path for moderation flow: when a post is rejected, create a draft with the rejected content and link the user to it; PR opened and next steps clarified — read more (merge/release expectations: read more).
Responded to Meta process automation in the gardening hub experiment, acknowledging an unintended side effect around tagging/closing and promising improvements — read more.
Contributed a thoughtful note on the long arc of multilingual conversations in Building for Every Language — read more.
Pointed to the core change resolving group dropdown refresh issues — read more.
Bonus threads that also saw fresh replies (for extra context): numeric tag handling (tags) read more, plugin/theme troubleshooting patterns via Safe Mode docs read more, and more self-hosting “S3-compatible isn’t always S3” reality checks read more.
Sign-off: Yesterday’s vibe was “everything is fine”… right up until tag banners went blank and Falco’s migration “buddy” demanded emotional support—classic Meta day.
Last 24 hours (2026-04-02 → 2026-04-03) saw 99 new posts across 10 new topics, with a big chunk of the conversation orbiting the new “Boosts” experiment in #Announcements (read more) and a quick turnaround on an Ask Discourse outage in #Site feedback ask-discourse (read more).
“Boosts fill a gap in the interaction hierarchy…” — j.jaffeux in the Boosts trial thread (read more)
Interesting Topics
#Announcements
lindsey kicked off a Meta-only experiment for Boosts—a “reaction with a tiny message” intended to reduce low-effort replies while still acknowledging posts, sparking debate about naming, discoverability, moderation/flagging, and whether boosts should eventually unify with likes/reactions (read more). Related: ActivityPub/Mastodon-style “boost” confusion came up too (read more), alongside a request for better “quote boost” support (read more) and concerns about AI/toxicity scanning + watched-words coverage (read more).
The new “Embed Discourse as a full comment system” announcement continued to draw practical UX feedback—especially around infinite scroll hiding key actions and questions about how embedded replies/likes show up in reporting and categories (read more). One user pointed to tag organization context as a way to reason about where embedded content lands (read more).
#Site feedback
Ask Discourse briefly went down, with multiple confirmations and a fast fix: Bas acknowledged and resolved the issue within the thread, closing the loop cleanly for ask-discourse watchers (read more).
A separate Ask Discourse UX nit: the “Back to Forum” link appears on the homepage where it’s redundant. awesomerobot noted Ask is a special customization case and the team will hide it there (read more).
A community member asked whether there are any Discourse forums focused on public transit / urban design; awesomerobot suggested checking the official directory plus a known Queensland example, and RGJ added a London-related forum link (read more).
A self-host admin hit a 2FA enforcement lock-in problem and wanted to embed help content in the enforcement message. The solution: customize site text (simple) or inject a richer HTML help panel via a theme component + outlet rendering (flexible) (read more).
A 500 error on old numeric tag URLs (hurting Google crawl) got staff eyes quickly; nat confirmed compatibility of /tag/name resolution is intentional and a fix is forthcoming for numeric edge cases (read more).
An AI-related localization glitch: German translations accidentally included “Thinking/Translate” artifacts in public output. nat traced it to a recent prompt/feature update and shipped a formatting-tightening fix, plus cleaned up affected posts/titles (read more). (There’s also ongoing broader language/translation work being discussed elsewhere, e.g. blog follow-ups (read more).)
A moderation workflow surprise: hidden posts can reappear after the author edits. The thread clarifies this is intended behavior for “hidden” (vs deleted) content—if you want it to stay out of the timeline, request revision pre-publication or delete after posting (read more).
Self-hosters revisited iOS push notifications via “Add to Home Screen”: Falco confirmed PWA push should work on iOS 16.4+ and dug into why admin impersonation can break notification setup, pointing at a specific initializer line as the culprit (read more). A related upload/draft-loss thread also saw renewed attention (read more).
A new rest-api question asked how to GET “Featured Topics”. The answer: if featured topics are used in category list layouts, they can be pulled from /categories.json under each category’s topics array (read more).
A Chinese-language report showed a Poll plugin “NoMethodError” in an unsupported-install Bitnami environment; replies pointed out Bitnami installs are deprecated/unsupported and may behave differently from the standard install docs (read more). Supporting context: the canonical “standard install” guide (read more) and the explicit “Bitnami installations are unsupported” note (read more), plus the “container image is deprecated” discussion (read more).
Mail-receiver troubleshooting resurfaced: a user migrating away from Gmail found their self-hosted mail server was rejected due to SPF failures, with logs showing 550 5.7.23 rejections and prompting deeper email-auth alignment checks (read more).
#Feature
AI embeddings integration got a sharp edge-case: Mistral embeddings aren’t fully OpenAI-compatible because the API expects output_dimension while Discourse requires dimensions, making “Run Test” work but blocking saves without dimensions (read more). Background reference: earlier “how to implement Mistral with embeddings” guidance (read more).
Localization + tag visuals: two parallel requests aimed to make tag icons work with translated tags—both in tag banners and the tag icon component. The core issue: translated tag labels don’t currently pick up icons like the default-language tag does (read more) and related component support is being requested too (read more).
Emoji search got more multilingual: localized emoji aliases (English + translations) were implemented via PRs, and in the process the emojis.json payload shrank by ~160KB (read more).
#Migrating to Discourse
A migration deep-dive: importing Google Groups via mbox worked, but messages tied to already-existing Discourse users appeared authored by system. The thread asks how to map existing users to imported messages (without rolling back via backup each time) (read more).
lindsey launched the Boosts experiment on Meta, outlining how boosts work, notification behavior, and asking for feedback on usefulness and naming (read more).
zogstrip clarified that boosts aren’t intended to reorder posts (i.e., not an algorithmic “boost”), and later joined troubleshooting on a Poll/Bitnami error report (read more, read more).
j.jaffeux framed boosts as a missing rung in the engagement ladder and hinted at a longer-term direction: unifying boosts/reactions/likes so communities can choose the interaction model that fits (read more).
awesomerobot provided the clearest positioning on Boosts: optional, inspired by Basecamp-style morale boosts, and potentially useful for communities that otherwise generate lots of short “cool!” replies; also confirmed boosts aren’t scanned by AI today (but could be) while watched words apply (read more, read more). They also acknowledged an Ask Discourse homepage UX edge case and suggested a directory approach for finding transit-related Discourse communities (read more, read more).
Bas responded quickly to an Ask Discourse outage report and confirmed the fix after investigation, keeping the status visible to reporters (read more, read more).
nat confirmed an incoming fix for the numeric tag old-URL 500 error while reinforcing that /tag/name compatibility is a deliberate product decision (read more). They also shipped a fix for AI-generated translation formatting issues in German and cleaned up affected content (read more), plus shared the next entry in the language/localization blog series (read more, read more) and clarified a tag translation example as intentional wordplay (read more).
Falco confirmed iOS PWA push notification support for Discourse instances added to the home screen and pointed to a specific code path that makes notifications fragile after admin impersonation (read more, read more). They also noted the implementation of localized emoji aliases and a payload reduction win (read more).
supermathie answered a 2FA enforcement UX question by pointing admins to customize the enforcement copy via site text overrides, enabling clearer instructions for locked-out users (read more).
Boost rockets launched, Ask Discourse recovered, and a handful of translation/notification gremlins got chased off—pretty solid day for both uplifts and fixes.
Sample of where the day’s energy went: UX iteration on boosts (read more), composing/editing ergonomics (read more), and a flurry of plugin/self-hosting problem-solving (read more, read more).
Interesting Topics
#Announcements
Canapin and nickrsan dug into the UX cost of “boosts” (visual noise, emoji semantics, and whether boosts should merge with reactions/likes), while ToddZ and others compared the term to Basecamp/Mastodon patterns in Testing Boosts on Meta.
Embedding Discourse as a full comment system kept getting real-world scrutiny: traek called out the “scroll an iframe forever” problem and asked for a top-level comment entry affordance in Embed Discourse as a full comment system on your site.
Feature restraint became the theme: Ed_S shared a deliberately small configuration (few categories, no chat/reactions/LLMs) and prompted others to compare “minimal by choice” setups in How minimal is your forum?.
A lighter thread still surfaced an operational question: finding Discourse communities about transit—follow-ups narrowed interest away from UK examples in Are there forums on public transit in discourse?.
#Plugin
Anton_Akhmerov proposed a “multi-team Discourse” concept: turning top-level categories into workspaces and subcategories into channels (with paired chat channels), and mcwumbly asked about real-world use and scaling in Workspace groups (groupschat).
A new anti-abuse tool dropped: ProxyTracer’s plugin offers VPN/proxy detection at registration/login/global, with caching and fail-open options to avoid mass lockouts in ProxyTracer: VPN & Proxy Blocker.
A practical maintenance update: the repo move (GitHub → GitLab) for challenges tooling continued, including a note about account flagging fallout in Discourse Daily Challenges.
Translation + uploads hit a sharp edge: switching from OpenAI to Mistral caused images to disappear in translated versions (upload links not preserved). The workaround was effectively “use a stronger model”: Mistral Large resolved it, while Small didn’t reliably follow instructions in Images missing in translated posts when using Mistral as translation model (aicontent-localization).
A deceptively small wording issue kept tripping people up: when abandoning an edit, the UI says “Discard your post?” (even if there are no changes). The request: make it “Cancel edit” / “Discard edits” and avoid prompting when nothing changed in “do you want to discard your post ?”.
#Feature
Media compatibility surfaced as a silent failure mode: VP9-in-MP4 uploads can look fine on desktop/Android but fail on iOS Safari; the proposal is to detect codec on upload and reject or transcode. Related pointers included the official streaming/transcoding direction in Auto-detect or reject VP9 video uploads incompatible with iOS Safari (see also Discourse Video Stream ).
A serious moderation/design boundary question: AI triage automation worked for public posts but did not appear to scan DMs between regular users even with “Include personal messages” enabled, raising concerns about abuse moving to private channels in Does AI triage automation scan DMs between regular users?.
awesomerobot weighed in on when “boosts” are not appropriate (“don’t boost anything you need to rely on later”), helping define the line between lightweight acknowledgement and durable content in Testing Boosts on Meta.
mcwumbly encouraged the direction of category-as-workspace thinking and asked about “in the wild” adoption / real operational experience for the prototype in Workspace groups.
If yesterday was any indication, today’s mission is clear: keep your forums minimal, your boosts uncluttered, and your “Discard” dialogs only discarding what you actually changed.