# Development

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

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

**Page:** 2

---

## [Confirming API Access to Authoring Limit Site Settings](https://meta.discourse.org/t/confirming-api-access-to-authoring-limit-site-settings/407937)

<div class="topic-metadata">

**Author:** [@philh](https://meta.discourse.org/u/philh)\
**Replies:** 4\
**Last updated:** [July 25, 2026, 11:07pm UTC](https://meta.discourse.org/t/confirming-api-access-to-authoring-limit-site-settings/407937 "2026-07-25T23:07:34Z")

</div>

I’m working on an integration that publishes and syncs companion topics into Discourse via the API. For setup diagnostics, I’d like to read the forum’s current authoring limits so the integration can preflight content be…

---

## [\[Showcase\] RSVP Speed Reader & Document Library for Discourse](https://meta.discourse.org/t/showcase-rsvp-speed-reader-document-library-for-discourse/408264)

<div class="topic-metadata">

**Author:** [@Don](https://meta.discourse.org/u/Don)\
**Replies:** 1\
**Last updated:** [July 23, 2026, 9:07am UTC](https://meta.discourse.org/t/showcase-rsvp-speed-reader-document-library-for-discourse/408264 "2026-07-23T09:07:02Z")

</div>

Hello :waving\_hand: I’ve been working on a custom RSVP (Rapid Serial Visual Presentation) Speed Reader integration designed for Discourse platforms. It allows users to upload, manage, and read their e-books or documents…

---

## [Deprecating .js.es6 file extensions in themes and plugins](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894)

<div class="topic-metadata">

**Author:** [@david](https://meta.discourse.org/u/david)\
**Replies:** 9\
**Last updated:** [July 14, 2026, 3:07pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894 "2026-07-14T15:07:39Z")

</div>

Back in 2020, Discourse switched from the .js.es6 extension to .js. Over the years, the vast majority of themes and plugins have switched to the new extension, which provides much better compatibility with modern JavaScr…

---

## [This Meta Branded theme is special. Can I use it on my forum too?](https://meta.discourse.org/t/this-meta-branded-theme-is-special-can-i-use-it-on-my-forum-too/407076)

<div class="topic-metadata">

**Author:** [@Gid](https://meta.discourse.org/u/Gid)\
**Replies:** 2\
**Last updated:** [July 8, 2026, 2:31pm UTC](https://meta.discourse.org/t/this-meta-branded-theme-is-special-can-i-use-it-on-my-forum-too/407076 "2026-07-08T14:31:49Z")

</div>

I wanna acknowledge & appreciate something. I really love Discourse’s Meta Branded theme. Many other forum sites look depressing/overwhelming. I find this theme very beautiful, without being flashy. Appealing as mellow,…

---

## [How to configure array objects in a plugin? Using json\_schema with type: objects?](https://meta.discourse.org/t/json-schema-type-objects/405376)

<div class="topic-metadata">

**Author:** [@singi2016cn](https://meta.discourse.org/u/singi2016cn)\
**Replies:** 9\
**Last updated:** [June 26, 2026, 1:41am UTC](https://meta.discourse.org/t/json-schema-type-objects/405376 "2026-06-26T01:41:59Z")

</div>

How do I configure array objects in a plugin? I tried using json\_schema, but object property configuration doesn't support selectors like 'category'—only text input is possible. Meanwhile, setting type: objects simply doesn't work in plugin configurations. json\_schema configuration: quectel\_online\_customer\_category\_customers: default: "\[\]" client: true json\_schema: QuectelOn…

---

## [Possible to Develop an App Connection to Post to Forum?](https://meta.discourse.org/t/possible-to-develop-an-app-connection-to-post-to-forum/140523)

<div class="topic-metadata">

**Author:** [@fmckinnon](https://meta.discourse.org/u/fmckinnon)\
**Replies:** 6\
**Last updated:** [June 23, 2026, 10:50pm UTC](https://meta.discourse.org/t/possible-to-develop-an-app-connection-to-post-to-forum/140523 "2026-06-23T22:50:30Z")

</div>

Hey Gang, We are building a community on Discourse that is based around hunting, fishing, etc. Our users post pictures of their hunts, fish they caught, etc. We are working on an app that integrates with a mobile hun…

---

## [No excerpt property in categories API response](https://meta.discourse.org/t/no-excerpt-property-in-categories-api-response/405566)

<div class="topic-metadata">

**Author:** [@darkpixlz](https://meta.discourse.org/u/darkpixlz)\
**Replies:** 1\
**Last updated:** [June 18, 2026, 10:38pm UTC](https://meta.discourse.org/t/no-excerpt-property-in-categories-api-response/405566 "2026-06-18T22:38:10Z")

</div>

I was moving the backend of a blog to Discourse and found this API endpoint for listing topics: However, when I list topics using the endpoint (https://discourse.example.com/c/blog/32/l/latest.json?filter=default), the…

---

## [Extending chat message blocks](https://meta.discourse.org/t/extending-chat-message-blocks/405006)

<div class="topic-metadata">

**Author:** [@Anton\_Akhmerov](https://meta.discourse.org/u/Anton_Akhmerov)\
**Replies:** 2\
**Last updated:** [June 16, 2026, 5:41pm UTC](https://meta.discourse.org/t/extending-chat-message-blocks/405006 "2026-06-16T17:41:09Z")

</div>

Hi all, I would like to develop a plugin for displaying GitLab/GitHub activity notifications in Discourse Chat, or more broadly any kind of regular events. For a richer output I would like to display activity as a card…

---

## [Introducing a new JS build system for Discourse core](https://meta.discourse.org/t/introducing-a-new-js-build-system-for-discourse-core/403908)

<div class="topic-metadata">

**Author:** [@david](https://meta.discourse.org/u/david)\
**Replies:** 2\
**Last updated:** [June 12, 2026, 10:29am UTC](https://meta.discourse.org/t/introducing-a-new-js-build-system-for-discourse-core/403908 "2026-06-12T10:29:55Z")

</div>

Following successful modernization of the theme and plugin build systems over the last year, we’re now ready to move forward with making a similar upgrade in Discourse core. Despite being a complete overhaul of the core…

---

## [Auth plugin / password field coding](https://meta.discourse.org/t/auth-plugin-password-field-coding/405089)

<div class="topic-metadata">

**Author:** [@sadie](https://meta.discourse.org/u/sadie)\
**Replies:** 1\
**Last updated:** [June 11, 2026, 6:09pm UTC](https://meta.discourse.org/t/auth-plugin-password-field-coding/405089 "2026-06-11T18:09:46Z")

</div>

This is a bit of a shot in the dark I am writing a new plugin for authentication against the service we use for managing a makerspace (Nexudus, we hate it but it’s what we’ve got for now). I have built auth + new disc…

---

## [Github actions failing "Check SKIP\_DB\_AND\_REDIS bootability" step](https://meta.discourse.org/t/github-actions-failing-check-skip-db-and-redis-bootability-step/404152)

<div class="topic-metadata">

**Author:** [@elmuerte](https://meta.discourse.org/u/elmuerte)\
**Replies:** 6\
**Last updated:** [June 10, 2026, 7:31pm UTC](https://meta.discourse.org/t/github-actions-failing-check-skip-db-and-redis-bootability-step/404152 "2026-06-10T19:31:17Z")

</div>

I had an issue where the recently added “Check SKIP\_DB\_AND\_REDIS bootability” step failed for one of my plugins. SKIP\_DB\_AND\_REDIS boot failed. Make sure the database is not being accessed during the Rails boot process…

---

## [Refactoring Flarum import script using AI LLM to migrate to Discourse](https://meta.discourse.org/t/ai-llm-flarum-discourse/404732)

<div class="topic-metadata">

**Author:** [@AkarinLiu](https://meta.discourse.org/u/AkarinLiu)\
**Replies:** 1\
**Last updated:** [June 8, 2026, 8:07pm UTC](https://meta.discourse.org/t/ai-llm-flarum-discourse/404732 "2026-06-08T20:07:55Z")

</div>

To ensure a smooth migration to Discourse, I integrated the DeepSeek official API into Visual Studio Code and refactored the Flarum import script using an AI LLM. It has been tested and is ready to use. Gist link: https://gist.github.com/AkarinLiu/4dae346b2f100dff2bc197d95579826b

---

## [Connect Discourse to WeChat Mini Program](https://meta.discourse.org/t/connect-discourse-to-wechat-mini-program/312085)

<div class="topic-metadata">

**Author:** [@尔德\_王](https://meta.discourse.org/u/%E5%B0%94%E5%BE%B7_%E7%8E%8B)\
**Replies:** 12\
**Last updated:** [June 6, 2026, 3:16pm UTC](https://meta.discourse.org/t/connect-discourse-to-wechat-mini-program/312085 "2026-06-06T15:16:08Z")

</div>

There is an instant messaging tool in China called WeChat. It has a function called (Mini Program), which is actually a built-in browser. If Discourse can be added to the Mini Program, it will be a great opportunity for …

---

## [Improving automatic switching of mobile/desktop modes](https://meta.discourse.org/t/improving-automatic-switching-of-mobile-desktop-modes/384280)

<div class="topic-metadata">

**Author:** [@david](https://meta.discourse.org/u/david)\
**Replies:** 11\
**Last updated:** [May 26, 2026, 8:23am UTC](https://meta.discourse.org/t/improving-automatic-switching-of-mobile-desktop-modes/384280 "2026-05-26T08:23:52Z")

</div>

Historically, Discourse has had two distinct views for mobile and desktop. Over the years, these have tended to converge towards more modern viewport-width-based design. Those modern patterns are documented here. In the…

---

## [Optimizing the homepage display of the Foundation theme](https://meta.discourse.org/t/foundation-theme/403802)

<div class="topic-metadata">

**Author:** [@sniper756](https://meta.discourse.org/u/sniper756)\
**Replies:** 0\
**Last updated:** [May 26, 2026, 7:35am UTC](https://meta.discourse.org/t/foundation-theme/403802 "2026-05-26T07:35:31Z")

</div>

Solve the issue in this post After the rebuild update just now, the font on the homepage became very small - Contributions / User Experience - Discourse Meta Optimize homepage display via custom components: Before optimization: After optimization: Custom component CSS code: /\* ========== Ensure consistent top and bottom margins for category rows ========== \*/ .category-list tbody tr td { padding-top: 10px !important; padding-…

---

## [A basic Discourse archival tool](https://meta.discourse.org/t/a-basic-discourse-archival-tool/62614)

<div class="topic-metadata">

**Author:** [@mcmcclur](https://meta.discourse.org/u/mcmcclur)\
**Replies:** 24\
**Last updated:** [April 30, 2025, 2:30am UTC](https://meta.discourse.org/t/a-basic-discourse-archival-tool/62614 "2025-04-30T02:30:28Z")

</div>

Archival tool updated with Codex May 2026 It seems that it’s pretty tricky to save an entire discourse site to a static version. According to this post by Jeff Atwood, it’s “much harder than you’d think”. It doesn’t app…

---

## [Notification are grouped for the more than 1 reply on the same post](https://meta.discourse.org/t/notification-are-grouped-for-the-more-than-1-reply-on-the-same-post/403440)

<div class="topic-metadata">

**Author:** [@nitinkg](https://meta.discourse.org/u/nitinkg)\
**Replies:** 0\
**Last updated:** [May 20, 2026, 3:00pm UTC](https://meta.discourse.org/t/notification-are-grouped-for-the-more-than-1-reply-on-the-same-post/403440 "2026-05-20T15:00:39Z")

</div>

We are using the Discourse notifications APIs/Data Explorer queries and are observing notification consolidation/grouping behavior for: reply/comment notifications (notification\_type = 2) reaction notifications (no…

---

## [PG::UndefinedTable: ERROR: relation "translation\_overrides" does not exist](https://meta.discourse.org/t/pg-undefinedtable-error-relation-translation-overrides-does-not-exist/42599)

<div class="topic-metadata">

**Author:** [@jamesarobbo](https://meta.discourse.org/u/jamesarobbo)\
**Replies:** 4\
**Last updated:** [May 20, 2026, 10:17am UTC](https://meta.discourse.org/t/pg-undefinedtable-error-relation-translation-overrides-does-not-exist/42599 "2026-05-20T10:17:55Z")

</div>

I have cloned master and in trying to run migrations i get this error: ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation “translation\_overrides” does not exist I see that a topic was created for this…

---

## [Discourse-patch-triage bot](https://meta.discourse.org/t/discourse-patch-triage-bot/402898)

<div class="topic-metadata">

**Author:** [@Lilly](https://meta.discourse.org/u/Lilly)\
**Replies:** 6\
**Last updated:** [May 19, 2026, 10:19pm UTC](https://meta.discourse.org/t/discourse-patch-triage-bot/402898 "2026-05-19T22:19:58Z")

</div>

trying to figure out how to work with the new discourse-patch-triage bot when doing PRs from our own fork, and it’s a bit confusing, especially in a 3-way conversation with it and a team reviewer. is there a proper way t…

---

## [Dev environment: recommended way to bootstrap the first admin account without email?](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187)

<div class="topic-metadata">

**Author:** [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Replies:** 6\
**Last updated:** [May 16, 2026, 4:26pm UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187 "2026-05-16T16:26:02Z")

</div>

I’ve been experimenting with the discourse/discourse\_dev Docker image (on Windows 11 laptop) and noticed a small friction point in the developer workflow. When running Discourse in development mode without outbound emai…

---

## [PR: Fix MiniScheduler::Web integration with Sidekiq 8](https://meta.discourse.org/t/pr-fix-minischeduler-web-integration-with-sidekiq-8/400645)

<div class="topic-metadata">

**Author:** [@dmke](https://meta.discourse.org/u/dmke)\
**Replies:** 2\
**Last updated:** [May 13, 2026, 11:14am UTC](https://meta.discourse.org/t/pr-fix-minischeduler-web-integration-with-sidekiq-8/400645 "2026-05-13T11:14:35Z")

</div>

In my last PR, I broke the MiniScheduler::Web integration by accident: The current release (v0.19.0) throws errors the moment you call require “mini\_scheduler/web”. Root cause is a change in the API that Sidekiq::Web pr…

---

## [Case study of an amateur plugin author](https://meta.discourse.org/t/case-study-of-an-amateur-plugin-author/402084)

<div class="topic-metadata">

**Author:** [@jericson](https://meta.discourse.org/u/jericson)\
**Replies:** 11\
**Last updated:** [May 4, 2026, 6:56pm UTC](https://meta.discourse.org/t/case-study-of-an-amateur-plugin-author/402084 "2026-05-04T18:56:52Z")

</div>

In 2024 I was looking for work. I decided to offer my services as a community consultant. Mostly, though, people were interested in technical help getting their Discourse sites fixed or updated. One potential client aske…

---

## [Update to bin/lint breaks linting flow for non-bundled plugins](https://meta.discourse.org/t/update-to-bin-lint-breaks-linting-flow-for-non-bundled-plugins/402126)

<div class="topic-metadata">

**Author:** [@klappradla](https://meta.discourse.org/u/klappradla)\
**Replies:** 9\
**Last updated:** [May 4, 2026, 6:27pm UTC](https://meta.discourse.org/t/update-to-bin-lint-breaks-linting-flow-for-non-bundled-plugins/402126 "2026-05-04T18:27:02Z")

</div>

A recent change on Discourse main branch (https://github.com/discourse/discourse/commit/e84d7c9f26ed) broke our way of linting the custom plugins we’re working on. The PR/commit subject was DEV: Update bin/lint to wor…

---

## [Automatically updating themes and plugins to .gjs file format](https://meta.discourse.org/t/automatically-updating-themes-and-plugins-to-gjs-file-format/368051)

<div class="topic-metadata">

**Author:** [@david](https://meta.discourse.org/u/david)\
**Replies:** 9\
**Last updated:** [May 2, 2026, 7:42pm UTC](https://meta.discourse.org/t/automatically-updating-themes-and-plugins-to-gjs-file-format/368051 "2026-05-02T19:42:35Z")

</div>

In the latest version of Discourse’s standard linting config, we’ve enabled the require-strict-mode ember-template-lint rule. This will raise a linting error for any .hbs files. To resolve the warnings, you should conve…

---

## [Managing group membership via authentication](https://meta.discourse.org/t/managing-group-membership-via-authentication/175950)

<div class="topic-metadata">

**Author:** [@angus](https://meta.discourse.org/u/angus)\
**Replies:** 32\
**Last updated:** [April 29, 2026, 11:00am UTC](https://meta.discourse.org/t/managing-group-membership-via-authentication/175950 "2026-04-29T11:00:52Z")

</div>

@david Continuing the discussion from https://github.com/discourse/discourse-openid-connect/pull/7#issuecomment-758082333 As you probably can guess, I’m also keen to see a stable solution to this problem, which is not …

---

## [Minio installer breaks CI](https://meta.discourse.org/t/minio-installer-breaks-ci/401370)

<div class="topic-metadata">

**Author:** [@klappradla](https://meta.discourse.org/u/klappradla)\
**Replies:** 2\
**Last updated:** [April 29, 2026, 12:38am UTC](https://meta.discourse.org/t/minio-installer-breaks-ci/401370 "2026-04-29T00:38:21Z")

</div>

The minio\_runner’s install script is broken, because of a redirect that’s not being followed. That breaks the shared GitHub action workflows from the .github repository. For our plugins, this means, we cannot run Rails …

---

## [Improving Discourse API documentation for building fully custom frontend community](https://meta.discourse.org/t/improving-discourse-api-documentation-for-building-fully-custom-frontend-community/401236)

<div class="topic-metadata">

**Author:** [@Mohamed\_Ahmed2](https://meta.discourse.org/u/Mohamed_Ahmed2)\
**Replies:** 1\
**Last updated:** [April 22, 2026, 1:15pm UTC](https://meta.discourse.org/t/improving-discourse-api-documentation-for-building-fully-custom-frontend-community/401236 "2026-04-22T13:15:05Z")

</div>

Hi everyone :waving\_hand: I’ve been building a custom frontend using Discourse as a headless backend (Next.js-based architecture), and I’d like to share some practical gaps I’ve encountered in the current API design fro…

---

## [Delete Draft post from the API - getting not\_found error](https://meta.discourse.org/t/delete-draft-post-from-the-api-getting-not-found-error/401220)

<div class="topic-metadata">

**Author:** [@nitinkg](https://meta.discourse.org/u/nitinkg)\
**Replies:** 1\
**Last updated:** [April 22, 2026, 10:32am UTC](https://meta.discourse.org/t/delete-draft-post-from-the-api-getting-not-found-error/401220 "2026-04-22T10:32:31Z")

</div>

Hi, I’m trying to delete a draft using the API: DELETE /drafts/{draft\_key}.json The draft exists (verified via GET /drafts.json) and I’m using the correct draft\_key and sequence. API Request (Postman / backend) DELET…

---

## [Interact with discourse from Python?](https://meta.discourse.org/t/interact-with-discourse-from-python/87543)

<div class="topic-metadata">

**Author:** [@Bar\_Smith](https://meta.discourse.org/u/Bar_Smith)\
**Replies:** 31\
**Last updated:** [April 20, 2026, 3:11pm UTC](https://meta.discourse.org/t/interact-with-discourse-from-python/87543 "2026-04-20T15:11:15Z")

</div>

Hi everyone! Love discourse, it’s the backbone of our community. We are an open source project with a strong presence on Github. We have a robot written in Python which manages our Github repositories and does things li…

---

## [Category-toggled one-touch move post](https://meta.discourse.org/t/category-toggled-one-touch-move-post/400983)

<div class="topic-metadata">

**Author:** [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Replies:** 0\
**Last updated:** [April 19, 2026, 6:34am UTC](https://meta.discourse.org/t/category-toggled-one-touch-move-post/400983 "2026-04-19T06:34:59Z")

</div>

Hello, in my email category, i would like to be able to enable a button - that appears on every post in this category. This would automatically select the post and open the dialogue; for splitting that post to an exist…

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

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