# Latest

**URL:** https://meta.discourse.org/latest.md?f=tracked&page=4

[Latest](https://meta.discourse.org/latest.md) · [Categories](https://meta.discourse.org/categories.md) · [Tags](https://meta.discourse.org/tags.md)

**Page:** 5

---

## [See TL3 Progress](https://meta.discourse.org/t/see-tl3-progress/410166)

<div class="topic-metadata">

**Author:** [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Replies:** 12\
**Last updated:** [October 10, 2026, 3:30am UTC](https://meta.discourse.org/t/see-tl3-progress/410166 "2026-10-10T03:30:34Z")

</div>

:information\_source: Summary Shows the user and staff their TL3 progress if they are TL2, along with extra information :hammer\_and\_wrench: Repository Link GitHub - NateDhaliwal/discourse-see-tl3-progress · G…

---

## [Change icons globally](https://meta.discourse.org/t/change-icons-globally/87751)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 26\
**Last updated:** [October 5, 2025, 1:10pm UTC](https://meta.discourse.org/t/change-icons-globally/87751 "2025-10-05T13:10:20Z")

</div>

This is an easy way to change a Discourse icon globally. Right click on the icon you want to change and select “Inspect element” or “Inspect” (depends on the browser) Find the icon name Search a new icon here…

---

## [Message Format support for localization](https://meta.discourse.org/t/message-format-support-for-localization/7035)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [May 31, 2013, 1:17am UTC](https://meta.discourse.org/t/message-format-support-for-localization/7035 "2013-05-31T01:17:09Z")

</div>

Guidelines for Translators In Discourse all Message Format strings have a key that ends with “\_MF”. The Crowdin Editor has a preview that allows you to experiment with various values which is quite helpful for checking y…

---

## [Add custom content that only appears on your homepage](https://meta.discourse.org/t/add-custom-content-that-only-appears-on-your-homepage/131415)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 10\
**Last updated:** [February 29, 2024, 3:04pm UTC](https://meta.discourse.org/t/add-custom-content-that-only-appears-on-your-homepage/131415 "2024-02-29T15:04:44Z")

</div>

A very common situation you’ll find yourself in as a theme developer is the need to create content that only shows on the homepage of your community. You might add some HTML to the “After Header” section of your theme, …

---

## [Create and share a font theme component](https://meta.discourse.org/t/create-and-share-a-font-theme-component/62462)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 4\
**Last updated:** [August 19, 2025, 10:34pm UTC](https://meta.discourse.org/t/create-and-share-a-font-theme-component/62462 "2025-08-19T22:34:35Z")

</div>

Discourse supports importing themes containing assets from a remote repository. This allows theme authors to share fonts and images. Create a new git repository with the font mkdir discourse-roboto-theme cd discourse-r…

---

## [Insert text or images anywhere on your site using CSS pseudo-elements](https://meta.discourse.org/t/insert-text-or-images-anywhere-on-your-site-using-css-pseudo-elements/99200)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [October 11, 2018, 11:12am UTC](https://meta.discourse.org/t/insert-text-or-images-anywhere-on-your-site-using-css-pseudo-elements/99200 "2018-10-11T11:12:34Z")

</div>

So, you want to insert some text or image in your Discourse site. Regarding the text in most cases it is sufficient to modify it from /admin/customize/site\_texts. Sometimes, however, it is our desire to add a sentence …

---

## [Replace Discourse's default SVG icons with custom icons in a theme](https://meta.discourse.org/t/replace-discourses-default-svg-icons-with-custom-icons-in-a-theme/115736)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 10\
**Last updated:** [February 24, 2026, 9:24pm UTC](https://meta.discourse.org/t/replace-discourses-default-svg-icons-with-custom-icons-in-a-theme/115736 "2026-02-24T21:24:39Z")

</div>

You can replace a Discourse’s default SVG icons individually or as a whole with your own custom SVG and override them within a theme or theme component. Step 1 - Create an SVG Spritesheet To get started, you must create…

---

## [Include assets (e.g. images, fonts) in themes and components](https://meta.discourse.org/t/include-assets-e-g-images-fonts-in-themes-and-components/62459)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 1\
**Last updated:** [August 23, 2024, 2:04am UTC](https://meta.discourse.org/t/include-assets-e-g-images-fonts-in-themes-and-components/62459 "2024-08-23T02:04:48Z")

</div>

Themes and theme components allow you to handle uploaded assets such as images and fonts. You can control what assets your theme accepts using the site setting: theme authorized extensions Including assets in themes and…

---

## [Add localizable strings to themes and theme components](https://meta.discourse.org/t/add-localizable-strings-to-themes-and-theme-components/109867)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 22\
**Last updated:** [August 9, 2024, 7:58pm UTC](https://meta.discourse.org/t/add-localizable-strings-to-themes-and-theme-components/109867 "2024-08-09T19:58:55Z")

</div>

For those looking to add custom languages and translations to a Discourse theme or theme component, they can now include localised strings, which are made available for use in UI components. Translations are stored in th…

---

## [Use Discourse Core Variables in your Theme](https://meta.discourse.org/t/use-discourse-core-variables-in-your-theme/77551)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [January 9, 2018, 4:55am UTC](https://meta.discourse.org/t/use-discourse-core-variables-in-your-theme/77551 "2018-01-09T04:55:37Z")

</div>

Discourse is incredibly customizable! The goal of this topic is to show you how make use of all the amazing options that are available to you as a theme developer. You know… so that you don’t have to reinvent the wheel …

---

## [Structure of themes and theme components](https://meta.discourse.org/t/structure-of-themes-and-theme-components/60848)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [April 12, 2017, 3:41pm UTC](https://meta.discourse.org/t/structure-of-themes-and-theme-components/60848 "2017-04-12T15:41:30Z")

</div>

Discourse supports native themes that can be sourced from a .tar.gz archive or from a remote git repository including private repositories. An example theme is at: GitHub - discourse/discourse-simple-theme: Sam's sim…

---

## [Private modules and the \`-internals\` convention](https://meta.discourse.org/t/private-modules-and-the-internals-convention/414400)

<div class="topic-metadata">

**Author:** [@system](https://meta.discourse.org/u/system)\
**Replies:** 0\
**Last updated:** [October 9, 2026, 7:23pm UTC](https://meta.discourse.org/t/private-modules-and-the-internals-convention/414400 "2026-10-09T19:23:12Z")

</div>

What -internals means A folder named -internals holds code that is not public API. It may be renamed, reshaped or deleted without notice or a deprecation cycle. Plugins and themes must never depend on it. Only the fol…

---

## [Install the Discourse Theme CLI console app to help you build themes](https://meta.discourse.org/t/install-the-discourse-theme-cli-console-app-to-help-you-build-themes/82950)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 16\
**Last updated:** [July 30, 2026, 8:47am UTC](https://meta.discourse.org/t/install-the-discourse-theme-cli-console-app-to-help-you-build-themes/82950 "2026-07-30T08:47:18Z")

</div>

The Discourse Theme CLI is a ruby gem that allows you to use your editor of choice when developing Discourse themes and theme components. As you save files the CLI will update the remote theme or component and changes t…

---

## [Get started with Theme Creator and the Theme CLI](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 8\
**Last updated:** [May 7, 2026, 2:04pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444 "2026-05-07T14:04:22Z")

</div>

This topic will walk you through how to use the Theme CLI with our Theme Creator site to develop a theme and preview your changes on a live Discourse site. Sign up for an account here on Meta if you haven’t already …

---

## [Designer's Guide to getting started with themes in Discourse](https://meta.discourse.org/t/designers-guide-to-getting-started-with-themes-in-discourse/152002)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 9\
**Last updated:** [April 8, 2024, 9:32pm UTC](https://meta.discourse.org/t/designers-guide-to-getting-started-with-themes-in-discourse/152002 "2024-04-08T21:32:15Z")

</div>

So you’re interested in in designing your own theme for Discourse? You’ve arrived at the right topic :smile: This guide will be more focused on the SCSS/CSS aspects of working with themes in Discourse. If you are also k…

---

## [Developing Discourse Plugins - Part 6 - Add acceptance tests](https://meta.discourse.org/t/developing-discourse-plugins-part-6-add-acceptance-tests/32619)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 32\
**Last updated:** [June 2, 2022, 11:06am UTC](https://meta.discourse.org/t/developing-discourse-plugins-part-6-add-acceptance-tests/32619 "2022-06-02T11:06:38Z")

</div>

Previous tutorial: Developing Discourse Plugins - Part 5 - Add an admin interface Did you know that Discourse has two large test suites for its code base? On the server side, our Ruby code has a test suite that uses rs…

---

## [Developing Discourse Plugins - Part 5 - Add an admin interface](https://meta.discourse.org/t/developing-discourse-plugins-part-5-add-an-admin-interface/31761)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 46\
**Last updated:** [September 24, 2024, 11:10am UTC](https://meta.discourse.org/t/developing-discourse-plugins-part-5-add-an-admin-interface/31761 "2024-09-24T11:10:58Z")

</div>

Previous tutorial: Developing Discourse Plugins - Part 4 - Setup git Sometimes site settings aren’t enough of an admin interface for your plugin to work the way you want. For example, if you install the discourse-akism…

---

## [Developing Discourse Plugins - Part 4 - Setup git](https://meta.discourse.org/t/developing-discourse-plugins-part-4-setup-git/31272)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 10\
**Last updated:** [January 30, 2024, 11:12am UTC](https://meta.discourse.org/t/developing-discourse-plugins-part-4-setup-git/31272 "2024-01-30T11:12:28Z")

</div>

Previous tutorial: Developing Discourse Plugins - Part 3 - Add custom site settings Now that your plugin is getting more sophisticated, it’s time to get more sophisticated about how you develop it. We suggest that you…

---

## [Developing Discourse Plugins - Part 1 - Create a basic plugin](https://meta.discourse.org/t/developing-discourse-plugins-part-1-create-a-basic-plugin/30515)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 32\
**Last updated:** [July 8, 2025, 8:52pm UTC](https://meta.discourse.org/t/developing-discourse-plugins-part-1-create-a-basic-plugin/30515 "2025-07-08T20:52:10Z")

</div>

Building a plugin in Discourse can be really simple, once you learn a couple of quirks. The goal of this post is to create a skeleton plugin and introduce you to the basics. Your development environment Make sure you ha…

---

## [Write end-to-end system specs for the Discourse user interface](https://meta.discourse.org/t/write-end-to-end-system-specs-for-the-discourse-user-interface/325937)

<div class="topic-metadata">

**Author:** [@system](https://meta.discourse.org/u/system)\
**Replies:** 3\
**Last updated:** [August 28, 2025, 2:51pm UTC](https://meta.discourse.org/t/write-end-to-end-system-specs-for-the-discourse-user-interface/325937 "2025-08-28T14:51:13Z")

</div>

Background Rails system specs are used to simulate the actions of a real user using the app in a browser. We use the Playwright ruby driver which is becoming an industry standard. The tests run locally and in CI out of t…

---

## [Using the DModal API to render Modal windows (aka popups/dialogs) in Discourse](https://meta.discourse.org/t/using-the-dmodal-api-to-render-modal-windows-aka-popups-dialogs-in-discourse/268304)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [July 3, 2023, 9:52am UTC](https://meta.discourse.org/t/using-the-dmodal-api-to-render-modal-windows-aka-popups-dialogs-in-discourse/268304 "2023-07-03T09:52:06Z")

</div>

Discourse 3.1.0.beta6 ships with a brand new \<DModal\> component-based API. DModal is part of the UI kit and is imported from discourse/ui-kit/d-modal. :information\_source: This supersedes the old controller-based API, …

---

## [Setup Continuous Integration using GitHub Actions](https://meta.discourse.org/t/setup-continuous-integration-using-github-actions/240150)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 8\
**Last updated:** [March 3, 2025, 9:12am UTC](https://meta.discourse.org/t/setup-continuous-integration-using-github-actions/240150 "2025-03-03T09:12:26Z")

</div>

:mag: Overview To build a robust extension for Discourse, it can be wise to include Continuous Integration (CI) into your plugin or theme-component. This will help to detect errors early on and lessen the chances of bugs…

---

## [Developing Discourse on GitHub Codespaces](https://meta.discourse.org/t/developing-discourse-on-github-codespaces/336131)

<div class="topic-metadata">

**Author:** [@system](https://meta.discourse.org/u/system)\
**Replies:** 14\
**Last updated:** [September 9, 2025, 1:50pm UTC](https://meta.discourse.org/t/developing-discourse-on-github-codespaces/336131 "2025-09-09T13:50:26Z")

</div>

GitHub Codespaces is a very fast way to get started with Discourse development. Their free tier is good for 30 hours per month of a 4-core machine. Getting Started Navigate to the github repository Press the , (com…

---

## [DCS World Server Status Live Card Plugin](https://meta.discourse.org/t/dcs-world-server-status-live-card-plugin/414388)

<div class="topic-metadata">

**Author:** [@fearlessfrog](https://meta.discourse.org/u/fearlessfrog)\
**Replies:** 0\
**Last updated:** [October 9, 2026, 6:58pm UTC](https://meta.discourse.org/t/dcs-world-server-status-live-card-plugin/414388 "2026-10-09T18:58:50Z")

</div>

:information\_source: Summary Shows live status of a DCS World Server mission :hammer\_and\_wrench: Repository Link GitHub - fearlessfrog/discourse-dcs-server-status: A Discourse forum DCS Server Status bot · G…

---

## [Creating a whisper post](https://meta.discourse.org/t/creating-a-whisper-post/44247)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 4\
**Last updated:** [July 23, 2025, 5:18am UTC](https://meta.discourse.org/t/creating-a-whisper-post/44247 "2025-07-23T05:18:56Z")

</div>

:bookmark: This guide explains how to create a whisper post in Discourse, including how to enable the feature and use it effectively. :person\_raising\_hand: Required user level: Users in whisper-allowed groups Whisper…

---

## [About system and AI bot personal messages](https://meta.discourse.org/t/about-system-and-ai-bot-personal-messages/414347)

<div class="topic-metadata">

**Author:** [@satonotdead](https://meta.discourse.org/u/satonotdead)\
**Replies:** 1\
**Last updated:** [October 9, 2026, 4:42pm UTC](https://meta.discourse.org/t/about-system-and-ai-bot-personal-messages/414347 "2026-10-09T16:42:28Z")

</div>

Coming from that reply and also a recently created topic, I wonder how to handle the personal messages on ‘system’ and all the AI bots without the need to use the console and/or impersonate those users. Is workflows cu…

---

## [At \`/new-topic\`, "Select All" (Control + A) does not select solely the previewed text, when the previewer's content is selected](https://meta.discourse.org/t/at-new-topic-select-all-control-a-does-not-select-solely-the-previewed-text-when-the-previewers-content-is-selected/414355)

<div class="topic-metadata">

**Author:** [@roke\_julian\_lockhart](https://meta.discourse.org/u/roke_julian_lockhart)\
**Replies:** 0\
**Last updated:** [October 9, 2026, 3:06pm UTC](https://meta.discourse.org/t/at-new-topic-select-all-control-a-does-not-select-solely-the-previewed-text-when-the-previewers-content-is-selected/414355 "2026-10-09T15:06:59Z")

</div>

When one focusses the source pane (#ember94), they expect Control + A to select solely the entered source text. I propose that this also be true for rendered content. I frequently desire this, because I frequently duplic…

---

## [Which user from Discourse?](https://meta.discourse.org/t/which-user-from-discourse/414335)

<div class="topic-metadata">

**Author:** [@bck055](https://meta.discourse.org/u/bck055)\
**Replies:** 3\
**Last updated:** [October 9, 2026, 1:53pm UTC](https://meta.discourse.org/t/which-user-from-discourse/414335 "2026-10-09T13:53:24Z")

</div>

We found more email the same domain: 4065b3df6c60c8204f0d7c88e018358f@does-not-exist.invalid How they approved it 4065b3df6c60c8204f0d7c88e018358f@does-not-exist.invalid

---

## [Badge SQL triggered on post content](https://meta.discourse.org/t/badge-sql-triggered-on-post-content/394444)

<div class="topic-metadata">

**Author:** [@Alexander\_Wright](https://meta.discourse.org/u/Alexander_Wright)\
**Replies:** 3\
**Last updated:** [October 9, 2026, 1:46pm UTC](https://meta.discourse.org/t/badge-sql-triggered-on-post-content/394444 "2026-10-09T13:46:01Z")

</div>

I’m trying to award a badge depending on the content of a post. For example, If I type ‘Give Me A Badge’ i’m awarded the ‘Demanding’ badge. My SQL is as follows: SELECT p.user\_id, p.id post\_id, p.updated\_at granted\_at…

---

## [Are the AI Agent chats working here on Meta?](https://meta.discourse.org/t/are-the-ai-agent-chats-working-here-on-meta/414345)

<div class="topic-metadata">

**Author:** [@putty](https://meta.discourse.org/u/putty)\
**Replies:** 0\
**Last updated:** [October 9, 2026, 1:45pm UTC](https://meta.discourse.org/t/are-the-ai-agent-chats-working-here-on-meta/414345 "2026-10-09T13:45:23Z")

</div>

Can someone try chatting with the AI agent to see if it responds? I see other AI features still work, but for some reason the bots aren’t responding to me today. Perhaps they are taking an early weekend :sweat\_smile:

[Previous page](https://meta.discourse.org/latest.md?f=tracked&page=3)

[Next page](https://meta.discourse.org/latest.md?f=tracked&page=5)
