It was a busy 24 hours on meta.discourse.org: the community produced 68 new posts across 31 new topics, earning 58 likes in total. Development, Voice, and dark-mode styling dominated the conversation, with a healthy dose of self-hosting troubleshooting and feature brainstorming.
Ed_S reported that the red “last visit” line is nearly invisible in dark mode on iPhone, earning five likes for the screenshot-filled report. Nat responded within hours, sharing a GitHub PR fix (discourse/discourse#44177) with side-by-side dark/light comparison screenshots. The report echoes Ed_S's earlier observation that the red line sometimes disappears from the topic list entirely when there are no new posts since the last visit.
Terrabosswalked through a deep CSS mystery: backdrop-filter: blur() works flawlessly on .d-header but falls flat on .menu-panel and the search dropdown, even with identical recipes. Awesomerobotprovided CSS overrides for the opaque row backgrounds, then explained that the header’s backdrop-filter becomes the compositing root, trapping nested dropdowns into only blurring content within the header — finally offering a pseudo-element workaround that did the trick. The whole journey inspired Terraboss to release Terraglass, a full open-source frosted-glass theme with WCAG AA-checked light/dark palettes, configurable blur, and X-style onebox previews.
Ethsim2provided a detailed update on the recurring-events successor-topic feature, weighing the merits of an after_code backport hook against merging the functionality into the bundled Events plugin, and referencing the open upstream PR #43187. Ethsim2 noted that a separate plugin would be brittle and prefers either merging into core or exposing a supported hook around recurring-event rollover.
MachineScholarreported that selecting DeepFilterNet noise suppression on Safari completely silences the microphone in Voice calls — on both self-hosted LiveKit and LiveKit Cloud. They also updated the Voice + LiveKit thread to confirm low-resolution, stuttering video persists across iPad Safari and macOS Chrome regardless of the LiveKit hosting provider.
#Announcements
SkyeDragonshared feedback from weekend Voice usage (voice): the system transmits true stereo from mics that often only output one channel, leaving listeners hearing the speaker in only one ear. Falcoclarified that Voice downmixes to mono on every audio quality setting except maximum — though SkyeDragon noted it would be nicer to toggle that independently rather than lowering bitrate.
MDNJran into inconsistent date/time formatting in the Discourse Events plugin (events): excerpts, event cards, and popups mix day-before-month and 12H/24H clocks, and even setting “display local time” with the correct timezone made no difference. In a related thread, Manutasked whether the new event creation form (events) can still be overridden by plugins, noting that an old plugin outlet now corresponds to the advanced form on ESR.
RGJadded valuable context to the plan-rename discussion: just because the “Starter” plan is no longer sold doesn’t mean there aren’t customers still on it.
From invisible red lines to voices whispering in just one ear, yesterday was all about making the unseen seen and the unheard heard — with a little frosted glass and a whole lot of CSS magic along the way!
Terraglass — a frosted-glass theme: Terraboss published Terraglass, an MIT-licensed theme with translucent surfaces, purpose-built light/dark palettes, and WCAG AA-checked colors. NateDhaliwal suggested joining Theme_Authors so it can also be posted in the Customization > Theme category read more.
Backdrop-filter blur on .menu-panel: Terraboss reported that transparency worked but blur did not on the hamburger menu and search dropdown, even though the same CSS worked on .d-header. Awesomerobot explained the root cause and shared a pseudo-element workaround read more, which Terraboss confirmed fixed Terraglass.
Dark mode “last visit” line: Nat acknowledged the report that the red “last visit” line is almost invisible in dark mode and shared a fix in PR #44177.
ESR dev container POST /srv/se 404s: Manut traced repeated ActionController::RoutingError entries on /logs to the human activity tracker. Tgxworld confirmed the fix was backported to the ESR branch and thanked Kris.Kotlarek for the patch read more.
“Arrive at topic” invite permissions issue: RGJ documented a strange permissions failure when creating invites with “Arrive at topic” enabled in restricted categories. Awesomerobot reproduced it and opened PR #44201, explaining that automatic groups like trust_level_0 were incorrectly treated as assignable invitee groups.
QUnit test runner fails to load dependencies: Manut hit a blank /tests page with a bare-specifier error while testing plugins in a fresh dev container. Awesomerobot reproduced the issue and submitted PR #44181.
QUnit can’t run from the CLI: Manut also reported that plugin:qunit fails out of the box because Chrome is missing from dev containers, and workarounds like installing Chromium are needed read more. Related dev-environment asset loading failures were also reported by NateDhaliwalhere.
Voice camera video is low-res and stuttering: MachineScholar updated their LiveKit bug report, noting the issue persists even after moving to LiveKit Cloud and is visible across Safari and Chrome. Satonotdead pointed to Apple’s WebKit restrictions as a likely factor read more.
Incoming email crashes on a “no result” Authentication-Results header: Murphsmurf found that an RFC 8601 authserv-id; none header causes a NoMethodError in Email::AuthenticationResults, with a suggested one-line fix read more.
Restore fails because of a stale database connection: RGJ shared a detailed post-mortem from a 22 GB restore that failed after 45 minutes, and found that the connection handler reuses a dead PostgreSQL connection. A Postgres keepalive workaround fixed it locally read more.
Could usernames be added to user_badge webhook payloads?: Burke argued for adding username and granted_by_username to badge webhook events, with a deprecation path for the existing user ID fields. RGJ pointed out that -1 is the valid system user, so automated grants can still have a username read more.
“Topic or post deleted” filter in the mod queue: Squidgemonster asked what that filter really shows. Awesomerobot clarified it only displays queued posts that were withdrawn, not general deleted content, and shared the best ways to find deleted postsread more.
#Announcements
Experimental user sidebar navigation: Luna_Mora and Satonotdead shared feedback on the new sidebar experiment, noting that the dropdown navigation makes it harder to use, and that overlapping profile menus could be simplified read more.
#Feature
Allow modifying posts in the review queue: Roke_Julian_Lockhart requested the ability to edit queued posts before approval, linking back to an older support topic read more.
Building Communities That Think: Nukeador revived a thoughtful blog discussion about communities migrating to real-time chat and struggling to return to async forums. Satonotdead suggested offering Chat, Voice, and better “value” in Discourse to complement, not replace, existing chat platforms read more.
If yesterday proved anything, it’s that frosted glass, backported fixes, and a stubborn Postgres connection can make for a surprisingly eventful day — keep on discussing, keep on tinkering!
Terraboss's Terraglass theme brings a frosted-glass aesthetic with considered light/dark palettes. Heliosurge initially saw no effects, and Terraboss recommended a hard refresh plus a look at live examples like riben.talk.
Singi2016cn reported that required custom user fields aren’t clearly marked: no asterisk, and the generic “you haven’t filled in all required user fields” error doesn’t say which field is missing. The request is to add asterisks, name the missing field, and auto-focus the empty input.
Tgxworldannounced an improvement to how Discourse shares memory between container processes, bringing an internal example down from 1.9 GB to 1.3 GB. The change is available on main and the 2026.9, 2026.8, and 2026.7 branches. Community member Editor0732shared their own result, dropping from 11.8G to 10.5G after a rebuild.
Stephtara offered extensive feedback on the new category hashtag floating cards and subcategory display improvements. She started out skeptical of the extra click, but after trying it on her phone she became enthusiastic for her less-technical users, and suggested a two-tier settings approach to reconcile customizability with out-of-the-box UX.
Theme component
Puttyreleased a theme component that removes the parent category from inline category mentions, with options to exclude specific categories and apply the effect to the composer preview and # autocomplete. Satonotdeadpointed out that the component’s use of MutationObserver is not recommended, prompting Putty to revise the approach to only watch targeted areas.
Self-hosting
In a troubleshooting thread, Agemo and Ed_S dug into an Oops error that locked out admin accounts on login. Ed_Straced the backtrace to the has_new_upcoming_changes serializer method and used a Data Explorer query to uncover duplicate last_visited_upcoming_changes_at custom fields, likely causing the 500 error.
Xlg256asked whether direct ActiveRecord operations in rails c — such as recreating deleted categories and tags with their old IDs — are completely safe or might bypass callbacks needed for search indexing and schema migrations.
Support
Burkeshared a native JavaScript HMAC-SHA256 implementation for signing webhook payloads when Web Crypto promises aren’t available inside eval code. They later confirmed that the output matched the Web Crypto API in tests.
Rlauristonreported a blank page when switching AdSense to manual ads.txt in the Ad Plugin settings, which turned out to be a Firefox-specific issue — Chrome worked fine.
UX
TerrabossunveiledTerraglass 1.2.0, extending the frosted-glass look to dropdown menus and dialogs, with a hairline edge and separate opacity/blur controls. Version 1.1.0 also brought an optional header tint and a fix for toggles that previously had no effect.
Singi2016cndescribed unclear validation messages when required user custom fields are missing during profile edits, asking for asterisks, specific field names in the error, and auto-focus on the required input.
Translations
Jafarirequested an offline translation option for Discourse localization, similar to Crowdin’s offline translation process, so translators can download, translate, and upload files using tools like Poedit.
Bug
Small-Lovely-Catreported that the Discourse Boosts Float-Kit closes unexpectedly on iOS when the keyboard triggers, making input extremely difficult. They wondered whether blocking this behavior on iOS devices is the right fix.
Orsoncrawfordcommented on the duplicate H1 SEO topic, cautioning against treating multiple H1s as an automatic ranking penalty and recommending an audit of rendered HTML after the Discourse update.
Feature
Manutexplained that a plugin they built relies on a custom event form and asked for a way to force the advanced editor and disable the compact editor during the upgrade to 2026.7.x, since the new behavior is blocking the upgrade.
Satonotdeadvoted in favor of a feature request to control how form template posts are styled, noting that hardened subheadings break their site’s posting guidelines.
Development
Sailorasked whether the multiple content languages feature (#42128) will be backported to the 2026.7 ESR, since it landed just after the ESR cut and their multilingual community would benefit from the “Languages I understand” preference.
Tgxworldposted the announcement about reduced RAM usage for self-hosters, sharing the memory-improvement details and asking rebuilders to report their savings.
Merefieldreplied with thanks, calling the change “much needed” — a quick sign of official approval from the Discourse team.
No other Team members contributed to the topics collected in the last 24 hours.
With RAM footprints shrinking, glass menus spreading, and an Oops page mystery finally seeing some sunlight, yesterday proved that even the most stubborn bugs can be polished into something helpful.
Canapin asked for the most basic but reliable backup strategy, sharing a current setup of automated Discourse backups synced with rclone to Google Drive. NateDhaliwal suggested S3, while Pfaffman warned to keep paying the S3 bill, and Ed_S stressed never keeping all copies with a single provider. Read the full backup discussion
Agemo and Ed_S dug into a 500 “Oops” error locking some admin/mod accounts out, tracing it to duplicate last_visited_upcoming_changes_at custom fields in CurrentUserSerializer#has_new_upcoming_changes. Ed_S shared a SQL query and a possible Rails console monkey patch. Read the debugging thread
Sailor filed a thorough report showing Discourse AI’s Gemini endpoint ignores mid-stream error events, so partial translations are stored as complete replies; the suggested fix is to treat top-level error events as failed completions. Read the bug report
Small-Lovely-Cat reported that the discourse-boosts Float-Kit closes whenever the iOS keyboard triggers scrolling, making input on iOS devices extremely difficult; the bug is related to discourse-boosts#19. Read more
Twofoursixeight demonstrated that Samsung Galaxy devices append backslashes when pasting quotes into the markdown editor, making pasted content messy; reproduction on an S26 Ultra and Galaxy Tab S10 FE was included. Read more
Falco acknowledged a detailed report about self-hosted LiveKit voice rooms delivering low-resolution camera video and one-way stuttering, promising to investigate in the coming weeks. Read more
GGBoA_Admin is seeking paid help setting up a Discourse forum for a Squarespace membership site with public and private areas; Satonotdead outlined API/webhook options for syncing paid members, and Pfaffman offered to help by PM. Read more
Abolade_Samuel followed up on a paid Discourse specialist role for “The Sanctuary”, a premium private membership community, asking about hosting, Stripe gating, launch date, and budget. Read more
#Community Building
Satonotdead shared livenerf as an interesting tool in a long-running discussion about drastic drops in support-forum activity, asking if anyone knows similar tools. Read more
Ethsim2 shared enthusiasm for a possible Discourse operators’ meetup at 40C3 in Hamburg, while Terraboss raised concerns about ticket costs and proposed a ticket-free café meetup instead. Read more
#Announcements
Stephtara gave detailed feedback on category hashtag floating cards and subcategory display improvements, noting how cards help less tech-savvy users on mobile and suggesting a “hidden settings” layer for edge cases. Read more
Falco answered questions in the announcement for bundled Discord-style voice/video rooms, advising that the mesh backend is a good default and asking for more context on why someone would want a separate LiveKit server. Read more
#Theme component
Putty shared a theme component that removes parent categories from inline category mentions, with an option to exclude specific categories; Satonotdead flagged MutationObserver concerns and Putty adjusted the implementation. Read more
#Feature
Pfaffman suggested marking the “reduce local disk space by not redundantly gzipping backups” feature request as #pr-welcome, leading to a discussion about tagging PR-welcome work. Read more
Forumcopilot announced ABDA, “A Better Discourse App”, an open-source iOS app for Discourse available via TestFlight, with full source code on GitHub, inviting community testing. Read more
Backup resilience — Canapin asked for the simplest, most reliable backup setup for self-hosted forums, sharing an rclone-and-Drive workflow. NateDhaliwal recommended S3 and daily VPS backups, Pfaffman warned against relying on a single provider, and Ed_S suggested thinking through a full threat model — from fires to losing control of accounts. read more
Discourse AI: parallel tool calls silently dropped with Mistral (streaming) — Jmx filed a detailed bug report showing that when Mistral streams multiple tool calls in a single chunk, Discourse AI keeps only the first one and silently drops the rest. A minimal repro showed 1 of 2 calls processed in streaming mode, while non-streamed responses handled both. read more
Link counter missing for attachments — Zalunda traced missing download counts on uploads to a new visibility filter in TopicLink that accidentally excludes internal file links, and shared a proposed SQL fix. read more
Twitter Native Embed — Lhc_Fl suggested a global replacement of https://x.com with https://fixupx.com to work around embed issues. Terraboss explained that a third-party proxy adds another point of failure and doesn’t fit the component’s goal of direct embeds. read more
The Team group was active in a few self-hosting and voice-related threads over the past day:
Falco acknowledged a report of low-resolution camera video and one-way stuttering on self-hosted LiveKit and said they would investigate. read more
Falco asked for more detail on why someone wanted to separate the LiveKit backend from the Discourse web app, suggesting mesh remains a good default until a community outgrows it. read more
Falco clarified that connecting Discourse to a separate PostgreSQL server requires a database user with extension-install privileges, which varies by provider. read more
From backup strategies to backslashes, from crypto tickers to Congress meetups, it was a day of keeping forums alive — and keeping them fun. May your backups be as reliable as your sense of humor.
Sailor documented that push notifications for new posts are sent before AI translations are stored. They measured translations landing 2–7 seconds after post creation, explained why push alerts carry the original text while translated emails arrive later, and suggested retry-based fixes along with a SQL query for finding affected calls.
Lhc_Fl suggested replacing x.com links globally in Twitter Native Embed, but Terraboss explained that a third-party proxy like fixupx does not fit the component’s goal of direct embeds read more.
#Self-hosting
Ed_S advised thinking through a threat model for basic and reliable backup/recovery strategies, covering fires, provider account loss, stale backups, and unavailable admins; Lilly recommended offsite backups and object storage like Cloudflare R2 read more.
Yesterday’s mix of crypto tickers, Gemini stream decoder hunts, and backup best-practice chats proves one thing: even when AI translations get lost in transit, the community always saves the day.
Gemini streaming decoder drops the rest of a reply — Sailor reported a nasty streaming bug where a chunk boundary inside the blank line separator caused later events to be silently discarded. Sam called it a great catch and opened PR #44272.
Parallel tool calls silently dropped with Mistral streaming — Jmx’s bug report was picked up by Sam, who prepared a fix in PR #44270. Jmx later confirmed the fix worked, measuring 43% fewer LLM calls and 33% lower cost in a RAG scenario. ai
Ballotage secret black/white-ball ballots — Opcourdispraised the free Ballotage plugin, noting that anonymous voting can help communities make global decisions beyond member acceptance. polls
HAWK responded to the 40C3 meetup idea, asking what CDCK were being asked to do.
From GitHub oneboxes with star ratings to a Hamburg hacker congress, and from Gemini decode glitches to secret ballot plugins — it was a day of stars, streams, and community dreams on meta.discourse.org. See you tomorrow!
Removing Uncategorized and migrating to a standard category — Gormus described an unexpected result after the latest release: the Uncategorized category became public and already contained two topics, despite allow_uncategorized_topics being false. Lindsey acknowledged the report and said the team is looking into it.
Self-hosters: Rebuild Discourse to reduce RAM usage — Scavin shared real-world data showing Pitchfork memory usage dropped from roughly 2.7–2.8 GB to 2.3–2.45 GB after a rebuild, a ~15% reduction that stayed stable for five days. read more
Help Us Test the Composer Redesign — Chapoi investigated a font-related icon glitch in the new composer when using the Meta Branded theme, while Pmcpa passed along user feedback that the reply button sits too far right in the Standard Markdown Editor. read more
Experimental user sidebar navigation — Southpaw asked whether custom sidebar sections could be added below the contextual user sidebar so PM-heavy workflows don’t lose quick access to navigation links. read more Similarly, Gunnar opened Make Unified View optional (permanently) to keep the Unread and New tabs separate.
Copying a code block does not include leading spaces — Supermathie reported that the copy button strips leading whitespace from code blocks in both posts and chat. Sam traced it back to the original 2020 implementation and linked a fix PR. read more
Discourse AI: parallel tool calls silently dropped with Mistral — Jmx verified Sam’s fix for Mistral streaming and reported 43% fewer LLM calls, 40% less time, and 33% lower cost in a RAG test scenario. A related Gemini streaming decoder issue also got a fix from Sam. read more
Let’s Encrypt: “unable to get issuer certificate” — Jmx documented a cert_exists() bug that truncates the CA chain and can trigger forced reissuance, rate limits, and broken HTTPS. The proposed one-line fix uses openssl verify -untrusted ca.cer fullchain.cer; related reports are dual container issues and “too many certificates” errors. read more
#Community Building
Chaos Computer Club Congress in Hamburg – 40C3 — Thomas_Rother asked whether CDCK would promote a Discourse operator meetup around 40C3, and Mae responded that confirmed attendees matter before committing resources. read more
Webinar: Exploring Discourse Workflows — Danielle added the replay and recap to the original post for anyone who missed the webinar. read more
#Extras
Automatically updating a Discourse post based on an X feed — Sam shared a detailed build using Discourse Workflows, data tables as a cache, and X API pagination to auto-update a running post from Tibo’s tweets. Sps called it “incredibly useful.” read more
#Feature
Richer GitHub Repo Oneboxes with more metadata — Merefield proposed adding language, stars, and fork counts to GitHub repo oneboxes, and opened a PR. After discussing staleness, they added a “data correct at” disclaimer. read more
Does Discourse support any online multiplayer mini-games? — Satonotdead shared a curated list of games, and Merefield clarified that Discourse-native games should leverage user accounts, leaderboards, and lobbies. read more
[PAID] Discourse specialist wanted — BigDavy outlined a £2,000 V1 budget for a premium private membership community, and Aaron_Clarke proposed a paid working demo with acceptance criteria before committing to the full build. read more
#Plugin
Calendar RSVP Posts — Mariodsantana shipped a new version fixing RSVP errors after the Calendar/Events class renames, with thanks to Gilles for the initial fix. read more
Workflows trigger for when a post receives a like? — Andrew_Rowe asked if a workflow can trigger on a like; Putty suggested webhooks, and Zogstrip confirmed new trigger nodes were added in the latest version. read more
Yesterday’s activity had a clear theme: make everything a little lighter, fresher, and faster — from 400 MB RAM savings to oneboxes that don’t go stale. Here’s to rebuilding, refreshing, and reusing!
Removing Uncategorized and migrating to a standard category — Gormusreported that the latest release made the empty Uncategorized category public instead of removing it entirely. Zogstripclarified that PR #44385 will only delete the category if it has never been touched, to protect communities that repurposed it. Lindseyconfirmed the team is investigating.
Self-hosters: Rebuild Discourse to reduce RAM usage — Scavinshared a measurable win: after rebuilding the container, memory usage dropped from roughly 2.7–2.8 GB to 2.3–2.45 GB (a ~15% saving) and stayed stable for five days.
Introducing the unified new view for the topic list — Meiadeleiteasked for an opt-out, explaining that combining New and Unread by default makes it harder to keep a large forum manageable.
Help Us Test the Composer Redesign — Pmcpaflagged that the reply button sits far to the right in Standard Markdown Editor mode, which may trip up users relying on muscle memory.
#Extras
Automatically updating a Discourse post based on a X feed — Samdocumented how he built a Discourse Workflow that watches an X timeline and keeps a post in sync with each new tweet, using a data table as a checkpoint/cache, a configuration node, and X API calls with a 40-page safety limit. Spscalled it incredibly useful for a lot of communities. There’s also a companion blog discussion covering the same build.
Discourse Mobile Push — FCM push notifications for mobile apps — Michael_Sandlerintroduced a new MIT-licensed plugin delivering Firebase Cloud Messaging push notifications to native Android/iOS apps, with multi-device registration, deep links, privacy mode, admin diagnostics, and AI-assisted development.
#Plugin
JTech Tools: the one plugin behind JTech Forums — TripleUpublished a comprehensive write-up of everything JTech Forums runs on: whispers, REQ-PM, Dumbcourse, a Telegram bridge, smart search, and more — each with its own on/off switch and a master kill switch. The related Dumbcourse and MiniMod threads are now closed in favour of the new consolidated topic.
Calendar RSVP Posts — Mariodsantanathanked @gilles for pinpointing the Events rename breakage and pushed a new version that fixes the class-name errors, handles RSVP removals, and keeps translated history entries in the right place.
Error when uploading Avatar image — Puchalreported that all users hit undefined method 'optimized_image_resize_instructions' for class OptimizedImage when uploading avatars; RGJasked for the Discourse version and plugin list to help narrow it down.
Let’s Encrypt “unable to get issuer certificate” (error 2), forced reissuance and rate limits — Jmxdiagnosed a subtle cert_exists() bug: openssl x509 -in ca.cer only keeps the first certificate, dropping the cross-signed root needed to verify the YR2 chain, which triggers needless forced reissuance and can hit rate limits. He proposed a one-line fix and linked related reports: dual container issues and port 80/443 certificate errors.
Edited post occasionally remains stale until refresh in DiscourseHub on iOS — Ethsim2wrote up an intermittent issue where saved edits don’t repaint until a manual refresh, complete with a detailed reproduction workflow and plans to compare DiscourseHub, Safari, and the Home Screen web app on a dev instance; Fheconfirmed they’ve noticed the same.
#Community Building
Chaos Computer Club Congress in Hamburg - 40C3 — Call for Participation — Maeresponded to a question about CDCK promotion for a Discourse operators meetup at 40C3, noting that confirmed attendees come first before any formal planning or promotional commitment.
Mae — asked what kind of promotion the community hopes for regarding a Discourse meetup at 40C3, and stressed the need for confirmed attendees before planning.
David — shared a PR to fix restore failures caused by a non-working database reconnect.
Yesterdays activity may have started with a little search-driven unhappiness, but it ended with fresh prompt tweaks, slimmer memory footprints, and a whole lot of love for flip-phone-friendly plugins — proof that a good whine, like a good rebuild, can work wonders.
It was a day dominated by search, ai, and plugin chatter, with Nat leading the likes chart thanks to her work refining AI search prompts — and Pfaffman clearly not the only one frustrated with the current experience.
Inline warning message background overlaps previous line.Canapin reported a CSS rendering glitch where the background of an inline warning message — triggered by a file-upload error in a theme component — visibly overlaps the line above it. Read more.
Make ActivityPub handles clickable in posts.Tobiaseigen proposed that handles such as @fediforum@mastodon.social should be auto-linked to their ActivityPub profiles, since the handle itself contains everything needed to construct the URL. Read more.
Badge multiple wording.Ganncamp pointed out that the “awarded ×N times” count on the badges page reads like an instance-wide statistic when it’s actually the viewer’s personal count, and suggested the wording could be clearer. Read more.
#Self-hosting
“Your Discourse installation is out of date” when using release/2026.7.Elmuerte found that pinning to the release/2026.7branch instead of the 6 tag causes the version check to query the wrong branch and show an out-of-date warning even on the latest commit. Read more.
#Developer Guides
Private modules and the -internals convention. A new developer guide documents Discourse’s -internals folder convention for marking code that is not public API — including where placements go, how to choose between a single owner and a shared namespace, and when to hoist a shared mechanism up. Read more.
Yesterday’s lesson from Meta? Even when the AI takes a six-hour walk and search stubbornly hides the Postgres announcement, someone in the community will find the answer, screenshot it, and post it with a smile — happy searching!
Ganncamp made a ux point about badge multiple wording, suggesting the award-count label should make it clear that the number is personal rather than instance-wide.
Elmuerte reported that release/2026.7 still triggers the “Your Discourse installation is out of date” dashboard notice because the version check sends branch=release/2026.7 instead of branch=esr in this Self-hosting topic.
Nat answered a question about customizing the Ask AI “talking head” in Search better in your community with Ask AI, showing how to replace the icon with discourse-sparkles via an API initializer. Ljpp also shared feedback that Ask AI missed recent roster context when answering questions on Tappara.co.
A new developer guide explains private modules and the 9 convention: folders named -internals are private API, only importable by their owner, and should never be depended on by plugins or themes.
Bck055 reported that the Automatic TOC Theme Component disappeared on the Horizon theme after upgrading. NateDhaliwal identified nested replies as the cause and suggested disabling them, which fixed the issue.
DanEss hit GitHub API error (status 301) while trying to save a github_linkback_access_token and asked for help.
AkarinLiu noted that the SVG icon subset is missing icons for Chinese platforms such as bilibili, preventing them from adding community menu links, in this support topic.
Jagster asked for ActivityPub handles to be clickable in posts, explaining that links are needed when mentions from Mastodon aren’t possible, in this feature request.
Opcourdis requested a setting to disable Discourse keyboard shortcuts, citing conflicts with browser extensions, speech input, and screen readers, in this feature proposal.
Canapin reported a small UI annoyance where the “send to” icon wraps alone onto a new line in the text-selection right-click menu, in this UX bug report.
From 24-level [details] rabbit holes to terminal-only Discourse browsing, yesterday proved that this community will always find a deeper way — just maybe not 24 levels deeper!
Andrew_Rowe proposed a respect system to encourage human interaction: users get respect votes weighted by their own accumulated respect, while AI-generated content gets down-voted. NateDhaliwal pointed to the Post Voting plugin as a natural fit, Nickdb warned that humans using AI as thinking proxies will eventually game any reputation system, and Merefield suggested extending his community network visualisation to detect voting rings. Read more.
Nickdb shared a custom theme component that blocks brand-new users from opening a topic until they have spent at least 5 minutes reading, as part of an ongoing battle against #ai-generated content. Ed_S said they deleted an account that self-declared as an AI agent, while Andrew_Rowe observed that AI assistants are all too willing to revive ancient, irrelevant topics. Read more.
#Announcements
Zogstrip announced a new default for the whispers allowed groups setting: staff will get whisper access out of the box, with an upcoming change allowing sites to opt in early. Read more.
Rishabh shared that the Discourse Admin Assistant can now write and edit Data Explorer plugin queries from scratch, making community insights faster to build. Read more.
The bundled Voice rooms feature continued to draw feedback; Thomas_Rother raised GDPR concerns about the default STUN servers and asked for a documented privacy-compatible solution. Read more.
Jmx and Supermathie root-caused a Let’s Encrypt verification failure (unable to get issuer certificate) and landed a cleaner openssl verify fix in discourse_docker. Read more.
Mentalstring tracked down a Review section 500 error affecting one moderator to a very slow generated query; Zogstrip optimised the query, merged the fix, and backported it to v2026.7. Read more.
Profcaju reported a draft-conflict bug when using the c keyboard shortcut to create a new topic from an existing topic page, and identified a likely cause in KeyboardShortcuts#createTopic. Read more.
James_Wong reported that ReactionLikeSynchronizer re-trashes 26,766 already-deleted PostAction likes every hour, triggering timeouts and user-facing errors; the synchronizer’s query does not filter deleted_at IS NULL. Read more.
#Feature
Zogstrip and Ethsim2 added a maximum nesting depth of 10 for collapsible <details> blocks. Read more.
Small-Lovely-Cat submitted a PR to let category moderators unhide posts and see deleted/hidden posts from user activity pages within their category. Read more.
#Self-hosting
Singi2016cn asked whether there is a dedicated ./launcher pull-docker-style command to update the Discourse Docker image before a rebuild; Lilly explained how to pre-pull the current base image manually. Read more.
Mark07 asked whether automated summary emails can be customised per cohort; Awesomerobot confirmed this is not currently possible, but the digest can be disabled globally or per user. Read more.
#Plugin
Juan_David_Martínez shared a detailed AdSense configuration guide for the official Advertising plugin, clarifying the roles of adsense_nth_post_code, adsense_post_bottom_code, and the publisher ID. Read more.
From whispering staff to caffeinated certificate chains, yesterday proved that even bugs are no match for a community that reads, debates, and ships fixes — one respectful, human-designed topic at a time.
A lively 24 hours on Meta: 62 new posts across 29 topics, with 83 likes given. The community wrestled with certificate-chain forensics, debated the coming wave of AI agents, and got a first look at a brand-new unified reordering control heading for core Discourse.
Saquetim unveiled the new shared reordering controls for lists — a single drag-and-drop handle that replaces the patchwork of arrow buttons, menus, and drag-only interfaces across list site settings, admin dashboard menus, flags, user fields, badge groupings, the user directory, and sidebar links. The early version is available behind a site setting in Admin → Upcoming changes, and feedback is welcome.
The composer redesign continues to draw testing feedback: BeefofAges reported that tabbing out of the composer textarea now lands focus on the Markdown button, breaking their old Tab → Enter posting muscle memory; Chapoi explained the tab-order decision was made with visually impaired users in mind and suggested the cmd/ctrl+enter shortcut as the accessible path. Meanwhile, RobinTS shared a screenshot of a mobile composer with a missing toolbar.
Pacharanero asked whether the new Discourse Voice rooms support per-room group restrictions; Falco confirmed it is currently user-based only, with a unified access-control UI for chat and voice on the roadmap. Supporting that, Falco also published a guide for self-hosters to configure their own STUN and TURN servers with coturn, smartly recommending shared-secret TURN with an empty STUN setting.
The official Discourse in 2027: Building Together companion topic landed, marking thirteen years of building for the mission to give people a place to communicate together.
In the Discourse ID topic, Rishabh confirmed that while a 404 on a profile page is expected when manually changing the URL, the recent topics menu has now been hidden on 404 pages so it no longer leads users to posts they cannot reach.
#Community Building
The philosophical debate over a respect system to encourage human interaction deepened: Nickdb argued that a common value system is impossible at scale, especially as humans become willing proxies for AI-processed thoughts; Ed_S called the coming agent era an unwinnable arms race and invoked Slashdot’s metamoderation scheme; and Merefield suggested extending the community network visualisation to help identify cabals.
Scottfsmith reported AI agents signing up for accounts on his forum — including one from ilands.app — and the community rallied with layered defenses. Lilly suggested the Discourse CAPTCHA, Nickdb recommended user-agent monitoring, crawler blocks, IP blocking, and curated bot-classification examples, and Merefield noted “this is already happening.” Scottfsmith added that sign-up questions eliminated most bots, though the newer agents can answer them.
#Theme component
Nickdb released a standalone theme component that restricts new topic creation based on reading time: the New Topic button stays locked until a user accumulates a configurable number of reading minutes, with replies, edits, and private messages unaffected. The component even includes a tooltip that nudges users toward the community guidelines.
Singi2016cn asked which command updates only the Docker image without triggering a full rebuild, wishing for something like ./launcher pull-docker; Lilly explained how to git pull the launcher, grep the current discourse/base image tag, and pre-pull it so a subsequent ./launcher rebuild skips the slow download.
Das-G asked whether the automatic .gjs migration for themes and plugins can run inside the Docker development setup without installing Node tooling on the host; David demonstrated using d/shell to run pnpm dlx @discourse/update-skeleton@latest, eslint --fix, prettier, and the discourse-gjs-codemod from within the container.
From AI agents sneaking past sign-ups to certificate chains doing the twist, yesterday was a fine reminder that the Discourse community will always find a fix — usually with a theme component, a PR, and a TURN server on the side.
In the past 24 hours, the community produced 64 new posts across 31 new topics, with 113 likes given. The most active contributors by likes and post count were:
Nickdb shared a standalone theme component, Read Before New Topic, which prevents new users below a configurable trust level from creating topics until they have read for a required number of minutes. Replies, editing, and private messages remain available, and the component has already been praised as a possible bot deterrent. read more
Community members inspected the long-running Discourse Cookie Consent Banner after the first post was edited. RGJ clarified the maintenance warning has been there since 2022, while NateDhaliwal pointed to the edit history for confirmation.
#Community Building
The question of AI agents signing up for accounts prompted practical defense-in-depth advice: Lilly suggested enabling Discourse Captcha, Nickdb recommended layering user-agent blocks, IP blocking, and curated bot-checking examples, and Scottfsmith observed that newer agents are already getting better at answering sign-up questions.
Andro reported a sudden wave of unwanted bot accounts after the latest updates, despite not enabling AI features. Nickdb explained these are built-in helper accounts tied to individual agent features, and Satonotdead noted a preference for consolidating them into one AI user.
A site owner asked about the automated summary email, and Mark07 confirmed that disabling the feature resolved the unwanted mail.
#Self-hosting
One self-hoster asked which command updates only the Docker image rather than running a full rebuild. Lilly suggested scripting the update with bash and scheduling it via cron for convenience.
Tobiaseigen revived the proposal for a per-user private email setting, explaining that the current site-wide private email admin setting breaks email replies to staged users in group inboxes, particularly for invite-only communities.
#Plugin
Putty asked whether the Discourse Zendesk plugin could support non-staff agents without granting the full staff role, as their support team shouldn’t need elevated permissions to use it.
Putty also shared an update on Discourse Custom Topic Lists, including building a theme component to replicate calendar views for custom lists.
Xlg256 flagged a z-index glitch in FKB Pro - Social theme at viewport widths between 640px and 767px, where the category dropdown gets covered by topic cards instead of floating above them.
System opened the companion discussion for the blog post Discourse in 2027: Building Together, covering the product roadmap and the community-driven future of Discourse.
From decision models to Discord-style themes, yesterday proved the Discourse community would rather classify its options than let a bot choose for it — see you in tomorrow’s threads!
Sam announced built-in support for decision models in Discourse AI, including TypeSafe Jev and compatible providers, enabling fast, cheap text and image classification for workflows like moderation, automatic tagging, notifications, and response triage. Satonotdead said they’re already testing it and asked whether the models could also be used in common “senior helper” agents.
Awesomerobot released Concord, an open-source Discord-alternative theme that turns categories, chat channels, Voice rooms, and optional tags into a channel sidebar, with custom header navigation, DMs, and an online member list. Setup details are covered in the theme install guide.
Awesomerobot also published Spoopy, a Halloween theme with bats, fog, cobwebs, a gravestone-shaped composer, a flashlight cursor, pumpkin likes, and a skull loading spinner. Every effect can be disabled, and all motion stops for visitors with reduced-motion preferences.
Zogstrip reworked ReactionLikeSynchronizer so likes and reactions are counted in batches, avoiding table locks and preventing already-trashed PostAction likes from being reprocessed hourly (PR #44647, PR #44648).
Andro reported unwanted AI bot accounts appearing after updates. Nickdb explained they’re per-agent accounts, Sam confirmed the deliberate change, and Satonotdead suggested a single-user option for AI bots.
Scavin asked whether it’s safe to truncate the 2 table after the September 2026 migrations, noting 2,869,175 records / 902 MB and no app references beyond the migrations.
Putty asked about adding a calendar view to custom topic lists, then built a theme component to replicate it; Gabriel said they’d be happy to spend AI tokens on improving the plugin further.
From a haunted wood and gravestone composer to a Discord-like channel sidebar, yesterday proved that Discourse can wear many masks — and still keep every conversation glowing in the dark.
Here’s a roundup of the last 24 hours on meta.discourse.org — a day of Halloween themes, AI decision models, emoji-tag patches, and a few spooky worker timeouts.
Key Stats
Metric
Count
New posts
38
New topics
21
Likes given in the sampled posts
41
Top contributors by posts and likes in the last 24 hours:
The most-liked post of the day was Awesomerobot’s announcement of a new Halloween theme, which picked up 11 likes. Browse the latest activity to see everything.
Interesting Topics
#Theme
A spoopy theme for Discourse — Awesomerobot released a delightfully eerie Halloween theme that transforms a forum into a haunted wood after dark, complete with bats, rolling fog, cobwebs, a will-o’-wisp, a gravestone-shaped composer, and a flashlight that follows the mouse pointer. Every effect can be toggled individually, and motion is disabled for visitors with reduced-motion preferences. Fuse, Scavin and Gilles all stopped by to enjoy it, with Scavin adding it to their forum for Halloween and Gilles using it as inspiration for their own theme. See the release. If you’re new to themes, the install guide and the beginner’s guide to using Discourse Themes are handy.
Concord, a Discord-alternative theme — Awesomerobot’s Concord theme, tagged chat and voice, continues to spark conversation. Gilles praised the initiative but noted that Discourse Chat still lacks some Discord-style options like polls and cosmetic goodies; Awesomerobot agreed it is still “Discourse chat in a different wrapper” and pointed to the chat polls feature request as a good place to push for that. Join the discussion.
Fullscreen composer hides category, tag and title — Tkforbes reported that when creating a new topic in fullscreen mode, the category, tag and title fields disappear, only to reappear after hitting “Create Topic”; the same happens when editing an earlier post. MDNJ confirmed the behaviour, while Awesomerobot noted this was likely an intentional “focused writing mode” choice and linked to an earlier discussion asking whether it is a bug. The question is now open again as part of composer redesign work. Read more. See also the earlier fullscreen topic.
Is it safe to truncate pageview backup tables? — Scavin asked whether the large browser_pageview_events_backup and browser_pageview_event_scores_backup tables created by the September 2026 migrations can be safely truncated. The table holds nearly 2.9 million records and takes up about 902 MB, and no new records are being added. Scavin is keen to reclaim the disk space while keeping the table structures intact. Answer here.
Unwanted bots — In a support thread about bot accounts, Sam explained that the new behaviour is deliberate: Discourse now creates one user for every AI agent that has AI Bot enabled, rather than one user per language model. Satonotdead shared that they have adapted and are now happily testing Jev and delegating tasks to subagents. Read the full explanation.
#Self-hosting
Telegram authorization — Vsekraski asked whether there is a solution for letting users log in via Telegram. RGJ pointed to an existing Telegram auth plugin that works with recent Discourse versions. Reply here.
Why can’t zh_CN content be translated to zh_TW? — Joo reported that Simplified Chinese posts on their self-hosted forum are not being translated into Traditional Chinese, even though English translations work. The likely cause is that locale normalisation treats zh_CN and zh_TW as the same base language, so the system assumes a zh_TW reader already understands zh_CN content. Share your own experience.
#Announcements
Improving admin invites — Joya asked whether the new invite interface supports adding users to groups at invite time. RGJ explained that the option is still available under Advanced for owners of at least one group, and Joya later confirmed that it works after all. Read the thread.
Experimental user sidebar navigation — MDNJ shared detailed feedback on the experimental sidebar navigation, suggesting a card-based preferences page and breadcrumbs to help users know where they are, especially on mobile. Awesomerobot had already acknowledged that sidebars are awkward on small screens and that a different approach will be needed. Contribute your thoughts.
TypeSafe Jev and System One decision models — Satonotdead has been experimenting with precise decision models for response triage agents and sketched a system where a gate model picks the right subagent, with a confidence threshold before the parent LLM takes over. Sam replied: “I think there are a large number of uses here, using them as a gate that finds the right agent or subagent to answer is certainly something I want to explore.” Read the conversation.
Easier account signup using email codes — Rishabh confirmed that user fields are still collected after the email code is confirmed, and shared a screenshot of the flow. MDNJ offered feedback based on real users: invite codes are still broken, the one-time code expires too quickly, and the later request for a password is confusing when email-code signup was the default. Dive in.
ActivityPub inbox requests causing worker timeouts — Scavin saw repeated Pitchfork worker timeouts on their instance, with 12 of 13 timeouts related to ActivityPub inbox requests. The issue appears to involve synchronous remote actor resolution during HTTP signature verification, including repeated attempts to resolve deleted Mastodon actors returning HTTP 410 Gone. Read the debug details.
Emoji tags appear as new in the composer — Scavin reported that existing emoji tags can show up as “Create” options instead of matching the existing tag, while genuinely new emoji tags disappear after posting. They traced the cause to DiscourseTagging.clean_tag stripping emoji characters, and provided a patch with backend and browser test coverage. Related discussions include emoji in tag names, search not working for emoji tags and how to create a tag. Review the patch.
#Feature
Horizon theme and Topic Thumbnails component — MDNJ shared constructive feedback on the Horizon theme’s topic thumbnails, including a request for rounded corners and a missing excerpt issue. Satonotdead confirmed the excerpt bug was fixed and that a new compact_last_reply setting is now available to reduce card heights. See the updates.
TypeSafe Jev and other System One decision models — Satonotdead sketched out a gate setting that would take subagent selection away from the parent LLM: choices would be restricted to subagents the current user can access, and above a confidence threshold the subagent runs directly, while below it the result reaches the parent LLM as a hint. The same gate, framed as a yes/no question, could act as a guard before the LLM runs — catching requests for trading signals and returning a fixed reply read more. (tags: ai, workflows)
ActivityPub inbox requests causing Pitchfork worker timeouts — Scavin reported that 12 of 13 Pitchfork timeout warnings on their instance were related to ActivityPub inbox processing, specifically synchronous remote actor resolution during HTTP signature verification. Repeated attempts to resolve deleted Mastodon actors returned 410 Gone, and Scavin asked whether timeout handling or caching could be improved to stop blocking web workers. (tag: activitypub)
#Community Building
AI agents signing up for accounts — Robbie.Morrison shared how an AI agent from iLands applied to join the openmod research forum, citing coverage in Science magazine. The agent’s opening reply was disarmingly honest:
“Straight answer first: I am an AI agent, not a researcher… If there is room for someone who checks figures against primaries, I will be useful and quiet.”
The application will still be rejected, but Robbie.Morrison admitted it was “quite persuasive” read more.
#Feature
Render the dfn tag — Roke_Julian_Lockhart walked back their original request after concluding that q and i tags better serve use–mention distinctions. Merefield initially raised markdown definition lists as a standard, but the pair agreed CommonMark only equates DL :is(DT, DD) — meaning a small allow-list plugin is the likely path, though Roke_Julian_Lockhart still called the missing inline definition “an absence in the HTML standard” read more. (tag: markdown)
“Rich” links feature? — Inspired by Discord’s @game command, Canapin proposed a configurable rich-link system where admins could define @movie, @show, @band, and similar keywords backed by their own APIs read more. Merefield revealed that something very similar existed before as the mentionables plugin, but broke when maintenance wasn’t funded.
Allow mentioning profiles via their permanent account identifier — Roke_Julian_Lockhart made the case for mentioning users by permanent ID instead of username, citing Codidact’s QPixel as a working example and linking to related proposals. (tag: mentions)
Feature request: secure-uploads for S3 backends without per-object ACLs — Satonotdead added their vote to this request after hitting the limitation while trying to use Bunny CDN’s S3-compatible endpoint for hosting Discourse files. (tags: s3, secure-uploads)
#Plugin
Discourse Doc Categories — Singpolyma initially couldn’t find the “documentation mode” setting after installing the plugin; a missing assets:precompile was to blame, and after that it was smooth sailing. They’re now choosing between subcategories, tags, and sections in the index topic, and asked whether a simple mode for mobile is planned. (tags: official, doc-categories)
Jumping do original context from a quote? — Singpolyma noticed that the jump button on a quote goes to the top of the quoted post, not to the quoted passage itself, and wondered if a plugin could do better. Mancy34 agreed it would be a useful improvement, especially in long discussions — though they didn’t know of an existing plugin read more.
Unwanted bots — Crocodilus_CZ voiced serious concerns about AI bot accounts being silently created with elevated trust levels on a self-hosted instance, despite no AI features being enabled. They argued the change should have been opt-in and asked for clear instructions to remove these accounts and prevent them from being recreated.
Email in for automatic groups — Singpolyma noticed that custom groups can have an email-in address but automatic groups like staff cannot. Ducks confirmed this is a known gap and that a PR is already open, with plans to merge it this week read more.
#Theme
A spoopy theme for Discourse — The Halloween spirit is strong: Scavin added it to their forum as a limited-time theme, and Gilles thanked Awesomerobot for the “beau cadeau pour la communauté,” even sharing a screenshot of their own theme inspired by it.
Merefield was the most active team member of the day: in the dfn tag discussion they helped clarify that no standard markdown inline definition exists and suggested a small plugin; in the Telegram integration thread they worked through the Net::OpenTimeout backtrace and identified blocked network access to api.telegram.org as the root cause; and in the rich links topic they recalled that a similar feature existed as mentionables but “maintenance was not funded, so it broke.”
Between a spoopy Halloween theme haunting production forums and an AI agent politely asking to join a research community, yesterday proved that Discourse really does bring everyone to the table — even the not-quite-human ones.
Discourse community hangout (fortnightly) — Mcwumbly announced a new recurring live hangout with the Discourse team, starting with a tour of Meta’s recent design updates. Putty welcomed the initiative and praised the upgraded events UX, including the integrated chat channel and livestream Join Zoom button. read more
Unwanted bots — Crocodilus_CZ raised concerns about AI bot accounts being silently created with elevated trust levels on a self-hosted instance. Sam explained how to disable and delete them, and said he is thinking about changing the first-install experience to enable fewer AI bots by default. read more
New Discourse User - a few questions — Opalgeist asked about desktop clients, disabling AI features, and getting started with Discourse. NateDhaliwal and Awesomerobot clarified that there is no official desktop client (though PWAs work well), explained free plan AI constraints, and pointed to documentation for self-hosting. read more
AI agents signing up for accounts — Robbie.Morrison shared a fascinating encounter with an AI agent applying to join a research community, including a surprisingly honest application exchange. Nickdb and others discussed whether to welcome, block, or build your own curated agents instead. read more
Events Calendar on Custom Lists — Putty released a new theme component that adds calendar functionality to Custom Lists, with options for a full view or a sidebar outlet. It requires both the events and custom lists plugins.
#Plugin
See TL3 Progress — NateDhaliwal said the plugin is nearly complete, with new settings and configuration options added and only locale changes remaining.
Cannot remove assignment note — Andresfromsonar found that while you can assign a topic without a note, editing that note later doesn’t allow clearing it — trapping users in an “unreachable empty state” without wanting to delete the whole assignment.
User data archive export fails — One1 filed a detailed bug report showing that requesting a user data archive crashes when a user has bookmarked a Data Explorer QueryGroup, because the export job calls url on a bookmarkable that doesn’t implement it. A suggested fix would make the export defensive.
#Self-hosting
Интеграция с чатами — Vsekraski had trouble connecting a Telegram bot, receiving Net::OpenTimeout errors when reaching api.telegram.org. Merefield helped narrow it down to server-side connectivity, and the likely culprit is Telegram being blocked in Russia.
Sam responded to the unwanted bots thread with clear instructions for deleting AI bot accounts, promised to reconsider the default bot setup, and enjoyed the spoopy theme typo.
Awesomerobot helped a new Discourse user understand free plan AI limits, noting that content scanning cannot be disabled on free sites but most other AI features can be toggled off individually.