# Deprecating .js.es6 file extensions in themes and plugins

**URL:** https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894
**Category:** Development
**Tags:** dev-news
**Created:** [March 20, 2026, 4:03pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894 "2026-03-20T16:03:38Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [March 20, 2026, 4:03pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/1 "2026-03-20T16:03:38Z")

</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 JavaScript tooling.

We are now [formally deprecating](https://github.com/discourse/discourse/pull/38756) the use of `.js.es6`, and will remove support after the next ESR release.

If you see a deprecation message for `.js.es6` files, you simply need to rename them to `.js`. That’s it. No need to change the content of the files.

---

<div class="post-metadata">

### Author: ![LeoDavidson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leodavidson/32/119574_2.png) [@LeoDavidson](https://meta.discourse.org/u/LeoDavidson)
#### Post date: [March 31, 2026, 10:15am UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/2 "2026-03-31T10:15:14Z")

</div>

Why do you keep doing things like this rather than maintain compatibility?

This is just creating more work for no reason. It costs nothing to allow the old and new extensions. They are just filenames.

Some of us are trying to do other things, not spend our lives updating Discourse plugins.

I’ve already stopped writing new plugins because i’m sick of this stuff.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [March 31, 2026, 10:54am UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/3 "2026-03-31T10:54:27Z")

</div>

`.es6` standard is over 10 years old. I think it’s reasonable to expect a deprecation after that length of time?

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [March 31, 2026, 12:55pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/4 "2026-03-31T12:55:26Z")

</div>

Is it fair to say your question was already asked and answered here?

> [@We're upgrading our icons to Font Awesome 6!](https://meta.discourse.org/t/were-upgrading-our-icons-to-font-awesome-6/325349/43):
>
> Sorry for the frustration, we try to make these updates easy and provide months of time to get them done — but there’s always a trade-off. If we kept remappings indefinitely we’d already have multiple layers of them from V4 → V5 → V6 and this would be debt that would require its own understanding and maintenance. If we did this for every piece of code Discourse would be much larger and more difficult to understand and work with. Yes, which is why we provide deprecation warnings and instruction…

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [March 31, 2026, 2:17pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/5 "2026-03-31T14:17:37Z")

</div>

Are there specific plugins you’d like help updating? if they’re open source I’m willing to take a look and open a PR

---

<div class="post-metadata">

### Author: ![darkpixlz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/darkpixlz/32/549896_2.png) [@darkpixlz](https://meta.discourse.org/u/darkpixlz)
#### Post date: [March 31, 2026, 3:18pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/6 "2026-03-31T15:18:21Z")

</div>

> [@LeoDavidson](#):
>
> Some of us are trying to do other things, not spend our lives updating Discourse plugins

I don’t think this is too much work:

> [@david](#):
>
> If you see a deprecation message for `.js.es6` files, you simply need to rename them to `.js`. That’s it. No need to change the content of the files.

This has been the standard for 6 years as the post says. If you hadn’t done it in six years and are now making your _third_ post complaining about this then there’s another problem here.

---

<div class="post-metadata">

### Author: ![LeoDavidson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leodavidson/32/119574_2.png) [@LeoDavidson](https://meta.discourse.org/u/LeoDavidson)
#### Post date: [April 7, 2026, 12:04pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/7 "2026-04-07T12:04:31Z")

</div>

> [@awesomerobot](#):
>
> Are there specific plugins you’d like help updating?

No, I am going to delete my plugins instead.

It’s not that making this particular change and re-testing everything afterwards is difficult. It’s that it’s _yet another breaking change made for absolutely no reason_, demonstrating that the Discourse team couldn’t care less about backward compatibility and breaking people’s forms and code.

The file extensions I used in this project were the ones the Discourse team told me to use at the time the plugin was written. There’s no sane reason to stop supporting the old extensions, but you’re doing it anyway because the team values making things slightly tidier on their side of things than keeping things _working_.

The team have messed up priorities and I’ve had enough of it.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [April 7, 2026, 12:26pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/8 "2026-04-07T12:26:05Z")

</div>

I responded over in the other topic:

> [@Deprecating .hbs file extension in themes and plugins](https://meta.discourse.org/t/deprecating-hbs-file-extension-in-themes-and-plugins/398896/14):
>
> I’m very sorry to hear that! If you do want to proceed down this path, I’d recommend adding a note to the README & Meta topic, marking it #broken and then archiving the GitHub repository. That way, it’s still available for others to fork (assuming the license is permissive enough). We absolutely do care about compatibility & keeping things working. That’s why we have these long deprecation periods with fully automated upgrade paths. We’re always trying to strike the balance between customiza…

but on this point specifically:

> [@LeoDavidson](#):
>
> There’s no sane reason to stop supporting the old extensions

We have seen significant confusion relating to the `.es6` file extensions. This deprecation is motivated by that education/support problem, and not technical constraints.

People end up using `.es6` because they copy existing themes/plugins. Then, all sorts of things are broken. In particular: syntax highlighting in editors, intellisense/type-checking, linting, codemods (e.g. the one to fix the `.hbs` deprecation), etc.

Developer experience is an important part of our platform. Enforcing consistency allows us to improve the education story, improve documentation and improve tooling.

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [April 7, 2026, 2:34pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/9 "2026-04-07T14:34:36Z")

</div>

I understand that this change is frustrating and I would like to find a path to maintaining these plugins if they’re important to the sites using them, specifically so we don’t end up with broken functionality. If there’s any possibility of keeping you involved in that process, that would be preferable.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [July 14, 2026, 3:07pm UTC](https://meta.discourse.org/t/deprecating-js-es6-file-extensions-in-themes-and-plugins/398894/10 "2026-07-14T15:07:39Z")

</div>

Any remaining uses of `.es6` files will now trigger a warning banner for admins. Depending on real-world-telemetry, we plan to remove support during the `2026.8.0-latest` cycle. `2026.7` ESR will be the last release with `.es6` support.
