# Development

**URL:** https://meta.discourse.org/c/dev/7.md?page=3

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

**Page:** 4

---

## [Best practice to create a simple theme?](https://meta.discourse.org/t/best-practice-to-create-a-simple-theme/397315)

<div class="topic-metadata">

**Author:** [@Canapin](https://meta.discourse.org/u/Canapin)\
**Replies:** 3\
**Last updated:** [March 3, 2026, 2:01pm UTC](https://meta.discourse.org/t/best-practice-to-create-a-simple-theme/397315 "2026-03-03T14:01:24Z")

</div>

Hi! I have fair, though a bit outdated, CSS knowledge, but I’m in no way a designer. To create a simple theme with only CSS overrides, what should the starting point(s) be? I’m not talking about tools (discourse\_theme …

---

## [Reply button getting brightening and bold effect on scroll/hover](https://meta.discourse.org/t/reply-button-getting-brightening-and-bold-effect-on-scroll-hover/397387)

<div class="topic-metadata">

**Author:** [@hipp0](https://meta.discourse.org/u/hipp0)\
**Replies:** 1\
**Last updated:** [March 1, 2026, 11:09pm UTC](https://meta.discourse.org/t/reply-button-getting-brightening-and-bold-effect-on-scroll-hover/397387 "2026-03-01T23:09:13Z")

</div>

The reply button has turned out to be the hardest thing to fix using CSS. Its making the reply button brighter when a post is hovered/focused on. Its also making the word Reply more bold on hover which I don’t like. …

---

## [Display subcategory tags in categories](https://meta.discourse.org/t/display-subcategory-tags-in-categories/396444)

<div class="topic-metadata">

**Author:** [@hellekin](https://meta.discourse.org/u/hellekin)\
**Replies:** 3\
**Last updated:** [February 26, 2026, 10:40am UTC](https://meta.discourse.org/t/display-subcategory-tags-in-categories/396444 "2026-02-26T10:40:48Z")

</div>

When I filter a category on a tag, I would like to see the topics tagged with the chosen one in the subcategories as well, because right now the filter exists in the drop down but if it’s only used in subcategories, the …

---

## [Installing discourse follow plugin in development (boot\_dev) setup — no app.yml file](https://meta.discourse.org/t/installing-discourse-follow-plugin-in-development-boot-dev-setup-no-app-yml-file/396398)

<div class="topic-metadata">

**Author:** [@nitinkg](https://meta.discourse.org/u/nitinkg)\
**Replies:** 2\
**Last updated:** [February 26, 2026, 10:00am UTC](https://meta.discourse.org/t/installing-discourse-follow-plugin-in-development-boot-dev-setup-no-app-yml-file/396398 "2026-02-26T10:00:58Z")

</div>

Hi, I’m running Discourse locally in development mode using docker. I’m trying to install the discourse follow plugin: Plugin: https://meta.discourse.org/t/discourse-follow/110579 I followed the plugin installation …

---

## [Override core function](https://meta.discourse.org/t/override-core-function/396566)

<div class="topic-metadata">

**Author:** [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Replies:** 1\
**Last updated:** [February 20, 2026, 10:45pm UTC](https://meta.discourse.org/t/override-core-function/396566 "2026-02-20T22:45:30Z")

</div>

I know one can override class methods with api.modifyClass, but can you do that with core functions, like formatUsername/userStatus?

---

## [Whats the easiest way to make a light theme using a dark theme that has heavy customizaiton](https://meta.discourse.org/t/whats-the-easiest-way-to-make-a-light-theme-using-a-dark-theme-that-has-heavy-customizaiton/396639)

<div class="topic-metadata">

**Author:** [@hipp0](https://meta.discourse.org/u/hipp0)\
**Replies:** 3\
**Last updated:** [February 20, 2026, 9:54pm UTC](https://meta.discourse.org/t/whats-the-easiest-way-to-make-a-light-theme-using-a-dark-theme-that-has-heavy-customizaiton/396639 "2026-02-20T21:54:25Z")

</div>

I’m using Foundation theme with a dark palette that I have customized heavily with css. I am wondering what would be the easiest method for making a light version that follows all the same CSS rules.

---

## [DTooltip button not rounded, icon is not centralized](https://meta.discourse.org/t/dtooltip-button-not-rounded-icon-is-not-centralized/396240)

<div class="topic-metadata">

**Author:** [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Replies:** 2\
**Last updated:** [February 17, 2026, 5:43am UTC](https://meta.discourse.org/t/dtooltip-button-not-rounded-icon-is-not-centralized/396240 "2026-02-17T05:43:16Z")

</div>

I have this code: For some reason, the button is not rounded, nor is the icon in the center: Could someone explain why this is so? Thanks.

---

## [Plugin to introduce auto-delete as a category-level option](https://meta.discourse.org/t/plugin-to-introduce-auto-delete-as-a-category-level-option/323769)

<div class="topic-metadata">

**Author:** [@Heliosurge](https://meta.discourse.org/u/Heliosurge)\
**Replies:** 7\
**Last updated:** [February 17, 2026, 3:14am UTC](https://meta.discourse.org/t/plugin-to-introduce-auto-delete-as-a-category-level-option/323769 "2026-02-17T03:14:48Z")

</div>

Asked google Gemini AI to create a plugin. The code would need to be audited by an experienced Discourse plugin DeV. If there is enough interest maybe we could setup a group to co sponsor a plugin Note I am not a pl…

---

## [How do you customize hot topic score algorithm with a plugin?](https://meta.discourse.org/t/how-do-you-customize-hot-topic-score-algorithm-with-a-plugin/396003)

<div class="topic-metadata">

**Author:** [@fangjue](https://meta.discourse.org/u/fangjue)\
**Replies:** 1\
**Last updated:** [February 13, 2026, 9:58am UTC](https://meta.discourse.org/t/how-do-you-customize-hot-topic-score-algorithm-with-a-plugin/396003 "2026-02-13T09:58:34Z")

</div>

The built-in Hot sorting algorithm is very simple and might not be suitable for different use cases. From my basic understanding of Discourse codebase, currently there is not user-facing site settings or appropriate plug…

---

## [What does api.addSaveableUserOptionField do?](https://meta.discourse.org/t/what-does-api-addsaveableuseroptionfield-do/381049)

<div class="topic-metadata">

**Author:** [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Replies:** 4\
**Last updated:** [February 9, 2026, 5:00pm UTC](https://meta.discourse.org/t/what-does-api-addsaveableuseroptionfield-do/381049 "2026-02-09T17:00:44Z")

</div>

There’s virtually no documentation on this, and the plugin API file doesn’t have a comment explaining the use of this function. Plus, the only place I can see it used is in plugins, not in core. So what does api.addSavea…

---

## [How to pop up an error message in the front end with an Ajax request?](https://meta.discourse.org/t/ajax/395532)

<div class="topic-metadata">

**Author:** [@singi2016cn](https://meta.discourse.org/u/singi2016cn)\
**Replies:** 1\
**Last updated:** [February 9, 2026, 10:27am UTC](https://meta.discourse.org/t/ajax/395532 "2026-02-09T10:27:18Z")

</div>

return render\_json\_error( 'Cannot perform the stick operation.', status: 402 ) Using the render\_json\_error method, how can I display an error message on the frontend?

---

## [Reworking the emails:test rake task output](https://meta.discourse.org/t/reworking-the-emails-test-rake-task-output/387286)

<div class="topic-metadata">

**Author:** [@supermathie](https://meta.discourse.org/u/supermathie)\
**Replies:** 23\
**Last updated:** [February 9, 2026, 9:16am UTC](https://meta.discourse.org/t/reworking-the-emails-test-rake-task-output/387286 "2026-02-09T09:16:51Z")

</div>

I recently went through the emails:task and related code with the aim of testing each of the failure codepaths and touching up the error text. I also discovered that the effects of setting DISCOURSE\_SMTP\_ENABLE\_START\_TL…

---

## [How do you keep the video/one box from expanding too wide](https://meta.discourse.org/t/how-do-you-keep-the-video-one-box-from-expanding-too-wide/395457)

<div class="topic-metadata">

**Author:** [@hipp0](https://meta.discourse.org/u/hipp0)\
**Replies:** 2\
**Last updated:** [February 8, 2026, 3:32am UTC](https://meta.discourse.org/t/how-do-you-keep-the-video-one-box-from-expanding-too-wide/395457 "2026-02-08T03:32:03Z")

</div>

100% zoom on Brave browser /\* --- 7. EMBEDS & MEDIA --- \*/ .twitterstatus { max-width: 345px !important; width: auto !important; } .video-placeholder-container, .video-placeholder-wrapper, .lazy-video-wrapp…

---

## [Mark posts in topic as "read'](https://meta.discourse.org/t/mark-posts-in-topic-as-read/394852)

<div class="topic-metadata">

**Author:** [@kittenwater](https://meta.discourse.org/u/kittenwater)\
**Replies:** 15\
**Last updated:** [February 8, 2026, 1:31am UTC](https://meta.discourse.org/t/mark-posts-in-topic-as-read/394852 "2026-02-08T01:31:27Z")

</div>

I tried to reverse engineer the site by sending POST requests to “https://{hostUrl}/topics/timings” with content-type, csrf token, and user-agent. Here is what the body (json) looks like: payload = { "topic\_id": topi…

---

## [Why is the before-topic-progress outlet wrapped with a \<span\>?](https://meta.discourse.org/t/why-is-the-before-topic-progress-outlet-wrapped-with-a-span/394935)

<div class="topic-metadata">

**Author:** [@Canapin](https://meta.discourse.org/u/Canapin)\
**Replies:** 1\
**Last updated:** [February 2, 2026, 3:13pm UTC](https://meta.discourse.org/t/why-is-the-before-topic-progress-outlet-wrapped-with-a-span/394935 "2026-02-02T15:13:56Z")

</div>

I was trying to add content to the mobile timeline container. There are two outlets in this container. before-topic-progress and after-topic-progress. before-topic-progress is wrapped with \<span\> and I don’t see why. …

---

## [Does DMenu work in Modals?](https://meta.discourse.org/t/does-dmenu-work-in-modals/393175)

<div class="topic-metadata">

**Author:** [@merefield](https://meta.discourse.org/u/merefield)\
**Replies:** 2\
**Last updated:** [January 30, 2026, 12:19pm UTC](https://meta.discourse.org/t/does-dmenu-work-in-modals/393175 "2026-01-30T12:19:46Z")

</div>

A search TextField when nested inside a DMenu and DropdownMenu, doesn’t seem to work in Modals. It works fine on a normal page, e.g. profile settings, but when placed on a Modal the TextField doesn’t seem to respond to …

---

## [Core plugins wherein a fork of a merged plugin was being used](https://meta.discourse.org/t/core-plugins-wherein-a-fork-of-a-merged-plugin-was-being-used/394718)

<div class="topic-metadata">

**Author:** [@skatefriday](https://meta.discourse.org/u/skatefriday)\
**Replies:** 5\
**Last updated:** [January 30, 2026, 10:47am UTC](https://meta.discourse.org/t/core-plugins-wherein-a-fork-of-a-merged-plugin-was-being-used/394718 "2026-01-30T10:47:34Z")

</div>

A bit late to the game here, but in regard to the migration of popular plugins to core discourse, what does one do if one was using a modified fork of a plugin that was merged? For reference Set up Discord notifications…

---

## [Plugin system tests failing](https://meta.discourse.org/t/plugin-system-tests-failing/394585)

<div class="topic-metadata">

**Author:** [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Replies:** 0\
**Last updated:** [January 28, 2026, 7:54pm UTC](https://meta.discourse.org/t/plugin-system-tests-failing/394585 "2026-01-28T19:54:27Z")

</div>

I just updated stuff from discourse-plugin-skeleton (after all tests passed locally, but then some change caused some front end tests to fail). Now I’m getting this: bin/turbo\_rspec --verbose --format documentation pl…

---

## [Chrome console deprecation warnings on Discourse v2026.1.0-latest (+307)](https://meta.discourse.org/t/chrome-console-deprecation-warnings-on-discourse-v2026-1-0-latest-307/394534)

<div class="topic-metadata">

**Author:** [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Replies:** 1\
**Last updated:** [January 28, 2026, 1:12pm UTC](https://meta.discourse.org/t/chrome-console-deprecation-warnings-on-discourse-v2026-1-0-latest-307/394534 "2026-01-28T13:12:24Z")

</div>

Hi all, While testing a Discourse site, I’m seeing consistent Chrome console deprecation warnings during initial page load. This does not break functionality - the site operates normally - but I wanted to check whether…

---

## [Can I create a new query in Data Explorer using API?](https://meta.discourse.org/t/can-i-create-a-new-query-in-data-explorer-using-api/264529)

<div class="topic-metadata">

**Author:** [@utku](https://meta.discourse.org/u/utku)\
**Replies:** 2\
**Last updated:** [January 26, 2026, 11:34pm UTC](https://meta.discourse.org/t/can-i-create-a-new-query-in-data-explorer-using-api/264529 "2026-01-26T23:34:16Z")

</div>

I can run the existing queries with or without parameters. I tried some POST calls to create a new query in Data Explorer without using the Admin console, but failed. Is there a method to create/delete a query in Data Ex…

---

## [Render a post above the discovery-list-container-top Outlet](https://meta.discourse.org/t/render-a-post-above-the-discovery-list-container-top-outlet/394270)

<div class="topic-metadata">

**Author:** [@Andrew\_Rowe](https://meta.discourse.org/u/Andrew_Rowe)\
**Replies:** 7\
**Last updated:** [January 25, 2026, 7:11pm UTC](https://meta.discourse.org/t/render-a-post-above-the-discovery-list-container-top-outlet/394270 "2026-01-25T19:11:02Z")

</div>

I’m a noob at this sorry I used ask discourse to ask: in a theme i want to render the first post from two topics above the topic list in the discovery-list-container-top Outlet it gave me several versions which to my …

---

## [Installing theme CLI and creating a theme](https://meta.discourse.org/t/installing-theme-cli-and-creating-a-theme/394294)

<div class="topic-metadata">

**Author:** [@Andrew\_Rowe](https://meta.discourse.org/u/Andrew_Rowe)\
**Replies:** 0\
**Last updated:** [January 25, 2026, 6:22pm UTC](https://meta.discourse.org/t/installing-theme-cli-and-creating-a-theme/394294 "2026-01-25T18:22:35Z")

</div>

I did not want to clutter that topic but I was following this guide when I got to this step instead I got /var/lib/gems/3.0.0/gems/discourse\_theme-2.1.6/lib/discourse\_theme/scaffold.rb:53:in \`block in generate': un…

---

## [Get back the real "raw" data that created a post?](https://meta.discourse.org/t/get-back-the-real-raw-data-that-created-a-post/189183)

<div class="topic-metadata">

**Author:** [@JQ331](https://meta.discourse.org/u/JQ331)\
**Replies:** 33\
**Last updated:** [January 24, 2026, 1:05am UTC](https://meta.discourse.org/t/get-back-the-real-raw-data-that-created-a-post/189183 "2026-01-24T01:05:05Z")

</div>

If I paste some html into a topic to create a topic, Discourse automatically reformats the HTML (it “cooks” it), keeping some (but not all) of the underlying formatting, and removing the HTML tags from the view. Is ther…

---

## [Can users make their User ID visible on their profile?](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001)

<div class="topic-metadata">

**Author:** [@1vernit3](https://meta.discourse.org/u/1vernit3)\
**Replies:** 13\
**Last updated:** [January 23, 2026, 7:43pm UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001 "2026-01-23T19:43:40Z")

</div>

Is there a way for users to see their own User ID when someone views their profile? Right now, IDs are only visible to admins through the dashboard, but I’d like users to be able to display their ID publicly. Is this s…

---

## [Is there an easy way to change version during development?](https://meta.discourse.org/t/is-there-an-easy-way-to-change-version-during-development/394070)

<div class="topic-metadata">

**Author:** [@manut](https://meta.discourse.org/u/manut)\
**Replies:** 2\
**Last updated:** [January 22, 2026, 11:04pm UTC](https://meta.discourse.org/t/is-there-an-easy-way-to-change-version-during-development/394070 "2026-01-22T23:04:32Z")

</div>

Hi ! I’m developping a Discourse plugin for internal purposes, and also try to contribute to the core. The stable version of the plugin uses a stable version of discourse, so I have to constantly switch the code base: …

---

## [How to Change User Profile Picture](https://meta.discourse.org/t/how-to-change-user-profile-picture/214121)

<div class="topic-metadata">

**Author:** [@Kumar\_Karuppaiah](https://meta.discourse.org/u/Kumar_Karuppaiah)\
**Replies:** 4\
**Last updated:** [January 7, 2022, 10:52am UTC](https://meta.discourse.org/t/how-to-change-user-profile-picture/214121 "2022-01-07T10:52:50Z")

</div>

Hi, I want to change the user profile picture programmatically instead of system assigned profile picture. How can I implement it? Please suggest me. Thanks Kumar

---

## [Creating a component to staff-limit user status](https://meta.discourse.org/t/creating-a-component-to-staff-limit-user-status/260214)

<div class="topic-metadata">

**Author:** [@Arkshine](https://meta.discourse.org/u/Arkshine)\
**Replies:** 19\
**Last updated:** [January 18, 2026, 6:42pm UTC](https://meta.discourse.org/t/creating-a-component-to-staff-limit-user-status/260214 "2026-01-18T18:42:52Z")

</div>

@Lilly If you are interested, you might try this component GitHub - Arkshine/discourse-restrict-user-status: A theme component to restrict user status access to groups. · GitHub EDIT: as soon it’s fully working, I will…

---

## [How to handle non-ASCII characters in Api-Username header?](https://meta.discourse.org/t/how-to-handle-non-ascii-characters-in-api-username-header/393646)

<div class="topic-metadata">

**Author:** [@xbd](https://meta.discourse.org/u/xbd)\
**Replies:** 1\
**Last updated:** [January 16, 2026, 3:03pm UTC](https://meta.discourse.org/t/how-to-handle-non-ascii-characters-in-api-username-header/393646 "2026-01-16T15:03:52Z")

</div>

Hi, I’m integrating with the Discourse API using RestSharp and running into an issue with usernames containing non-ASCII characters (specifically German umlauts). I need to impersonate a user with username foö (contains…

---

## [OpenID Connect Plugin Refactor (OIDC Implicit Flow)](https://meta.discourse.org/t/openid-connect-plugin-refactor-oidc-implicit-flow/386884)

<div class="topic-metadata">

**Author:** [@justinm](https://meta.discourse.org/u/justinm)\
**Replies:** 5\
**Last updated:** [January 16, 2026, 1:29pm UTC](https://meta.discourse.org/t/openid-connect-plugin-refactor-oidc-implicit-flow/386884 "2026-01-16T13:29:39Z")

</div>

Hey everyone, I’m looking to improve our security posture, and part of that means that we need to avoid using secret credentials whenever we can. Unfortunately the OIDC plugin required a client secret credential to hit…

---

## [Webhook for Discourse Uptime Monitoring?](https://meta.discourse.org/t/webhook-for-discourse-uptime-monitoring/75830)

<div class="topic-metadata">

**Author:** [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)\
**Replies:** 24\
**Last updated:** [January 16, 2026, 1:19pm UTC](https://meta.discourse.org/t/webhook-for-discourse-uptime-monitoring/75830 "2026-01-16T13:19:19Z")

</div>

Can Discourse Webhooks be used for reporting uptime to a 3rd party service e.g. hund.io ? if so, How?

[Previous page](https://meta.discourse.org/c/dev/7.md?page=2)

[Next page](https://meta.discourse.org/c/dev/7.md?page=4)
