# Emojis update

**URL:** https://meta.discourse.org/t/emojis-update/355624
**Category:** Announcements
**Tags:** emoji
**Created:** [March 4, 2025, 10:36am UTC](https://meta.discourse.org/t/emojis-update/355624 "2025-03-04T10:36:43Z")
**Posts on this page:** 19
**Page:** 3

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [March 14, 2025, 12:36pm UTC](https://meta.discourse.org/t/emojis-update/355624/43 "2025-03-14T12:36:58Z")

</div>

> **[discourse-emojis/dist/emoji/unicode at main · discourse/discourse-emojis](https://github.com/discourse/discourse-emojis/tree/main/dist/emoji/unicode)**
>
> main/dist/emoji/unicode

and then there are all kind of things to handle like aliases

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [March 14, 2025, 12:45pm UTC](https://meta.discourse.org/t/emojis-update/355624/44 "2025-03-14T12:45:39Z")

</div>

Ah-ha!

I’d missed that repo, thanks @j.jaffeux we’re now back in business 🥳

Apple, with a fallback to unicode 🙂

 ![Screenshot 2025-03-14 at 12.48.20](https://global.discourse-cdn.com/meta/original/4X/4/2/f/42f69ee2a4e2814294f7d9360015c19a5bd6bf32.png)

---

<div class="post-metadata">

### Author: ![mk0r](https://avatars.discourse-cdn.com/v4/letter/m/4da419/32.png) [@mk0r](https://meta.discourse.org/u/mk0r)
#### Post date: [March 15, 2025, 1:40am UTC](https://meta.discourse.org/t/emojis-update/355624/45 "2025-03-15T01:40:21Z")

</div>

> [@j.jaffeux](#):
>
> - different platforms support new released emojis at different speed, so you could have user A on platform 1, creating a post using an emoji available on this platform, which will then be seen by user B on platform 2 which doesn’t support yet the latest emojis released few weeks ago =\> tofu box (in the world of fonts, “tofu” is a blank rectangular box that appears when a character cannot be displayed).
> - custom emojis. Discourse supports custom emojis which are not mapped to a character and are just images.

This seems strange way of doing things. Rendering emoji as images in the flow of text feels against the grain. The vast majority of users will be very used to their device/OS native emoji so looking at some less-good or different version will feel strange.

The vast majority of websites use user-native emoji, how is this ever really a problem? shouldn’t the default be the user’s native emoji, with the option to do custom emoji sets as a plugin or user customizable option?

Current approach feels and looks inelegant

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [March 15, 2025, 10:38am UTC](https://meta.discourse.org/t/emojis-update/355624/46 "2025-03-15T10:38:17Z")

</div>

Is anyone else seeing massive emojis appear in posts?

 ![Screenshot 2025-03-15 at 10.37.21](https://global.discourse-cdn.com/meta/original/4X/c/4/6/c46f03b043e10ea4c49683a4c3f61268e98ac2f9.png)

 ![Screenshot 2025-03-15 at 10.37.27](https://global.discourse-cdn.com/meta/original/4X/e/7/4/e74ff223e6b0c9e4af416e16d7fe5e4b2cfaf071.png)

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [March 15, 2025, 11:48am UTC](https://meta.discourse.org/t/emojis-update/355624/47 "2025-03-15T11:48:06Z")

</div>

test 👏 test

* * *

must be something in your theme?

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [March 15, 2025, 11:52am UTC](https://meta.discourse.org/t/emojis-update/355624/48 "2025-03-15T11:52:05Z")

</div>

> [@mk0r](#):
>
> The vast majority of websites use user-native emoji, how is this ever really a problem?

- twitter uses the same strategy
- slack uses the same strategy
- discord uses the same strategy

Maybe there’s a reason?

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [March 15, 2025, 9:40pm UTC](https://meta.discourse.org/t/emojis-update/355624/49 "2025-03-15T21:40:45Z")

</div>

> [@j.jaffeux](#):
>
> must be something in your theme?

No, sorry, I’d missed a screen shot to show it was an upload by the looks of things.

If I edit the post this is what I see:

 ![IMG_2345](https://global.discourse-cdn.com/meta/original/4X/8/7/7/877e779617d0925cb64d1d977ec45a6196042518.jpeg)

Strange eh 🤷🏻‍♂️😊

---

<div class="post-metadata">

### Author: ![Divinebaboon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/divinebaboon/32/383698_2.png) [@Divinebaboon](https://meta.discourse.org/u/Divinebaboon)
#### Post date: [August 8, 2025, 4:00pm UTC](https://meta.discourse.org/t/emojis-update/355624/52 "2025-08-08T16:00:42Z")

</div>

Question: For the Unicode set, it is the ones in the [“Sample” column](https://unicode.org/emoji/charts/full-emoji-list.html) right? If so, these are the same exact ones as Noto, are they not? I’m just a bit confused as to why both are offered if they are the same set.

![Screenshot 2025-08-08 at 12.00.11 PM](https://global.discourse-cdn.com/meta/optimized/4X/5/8/c/58ca1f52a8bbcf31d5ada25ed41bf2d3f5d6d681_2_47x500.png)

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [August 27, 2025, 10:27pm UTC](https://meta.discourse.org/t/emojis-update/355624/53 "2025-08-27T22:27:33Z")

</div>

Yes you are right, we should make them converge, no big harm though.

---

<div class="post-metadata">

### Author: ![MichaIng](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaing/32/251089_2.png) [@MichaIng](https://meta.discourse.org/u/MichaIng)
#### Post date: [September 6, 2025, 6:48pm UTC](https://meta.discourse.org/t/emojis-update/355624/54 "2025-09-06T18:48:09Z")

</div>

I just stumbled over this, as our forum default (also when resetting the option back to its default, is “Twitter” while it says “deprecated to Twemoji”.

It makes sense that “Twitter” emojis are deprecated, since the name “Twitter” is deprecated (and the new platform turned into an abused shit hole mostly) 😅. But also it probably makes sense to not change things without admin consent.

About this default: is it the default the own Discourse instance was originally shipped with, or are these global to all instances, and hence can change? Do new instances have Twemoji emojis enabled by default?

---

<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: [September 7, 2025, 9:47am UTC](https://meta.discourse.org/t/emojis-update/355624/55 "2025-09-07T09:47:18Z")

</div>

> [@MichaIng](#):
>
> Do new instances have Twemoji emojis enabled by default?

If this is still the case, it might change in the future, see:

> [@Emojis, would it be prudent for Discourse to Fork Twemoji?](https://meta.discourse.org/t/emojis-would-it-be-prudent-for-discourse-to-fork-twemoji/272853/5):
>
> Moving this to feature @lindsey , at some point we may have to rethink our default emoji set We do not want to be stuck on a set that has stopped evolving Every year Apple champion a few new emojis to great fanfare it is a shame to be perceived as a product that is behind here What other open options are out there? Is there a non fork one that looks great and would be a great default?

---

<div class="post-metadata">

### Author: ![MichaIng](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaing/32/251089_2.png) [@MichaIng](https://meta.discourse.org/u/MichaIng)
#### Post date: [September 7, 2025, 1:54pm UTC](https://meta.discourse.org/t/emojis-update/355624/56 "2025-09-07T13:54:44Z")

</div>

> [@Canapin](#):
>
> If this is still the case, it might change in the future, see:

You mean if it is **not yet** the case?

My point is:

- It looks weird that “Twitter” emojis are explicitly stated deprecated in the list, while they are still the default, i.e. the “reset” button in our case still applies these deprecated Twitter emojis.
- So I was wondering whether the default has really not changed in upstream code, along with renaming “Twitter” to “Twitter (deprecated to Twemoji)”, or default settings changes do not apply retrospectively to existing Discourse instances. In this particular case I see an argument to not change the default on an existing instance, so admins can always revert to what their forum was shipped with, and settings they never touched do not change without them explicitly changing them.
- Other wording: Do the “reset” buttons apply the Discourse defaults (which may change), or do they apply whichever value the Discourse instance was originally shipped with?

Well, I guess the default has really not been changed yet, the other theory seems quite complicated behavior 😅.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [October 3, 2025, 9:57pm UTC](https://meta.discourse.org/t/emojis-update/355624/57 "2025-10-03T21:57:00Z")

</div>

Twitter is still the default, even on new installs

> <https://github.com/discourse/discourse/blob/2f9109f4b9b265ee917c88b8fbccfd030d8bb1c7/config/site_settings.yml#L1429-L1433>

I think “reset” always resets to the default of the current version. For example, `Normalize emails` was enabled by default about a year ago [DEV: Enable the normalize\_emails site setting by default by Drenmi · Pull Request #29952 · discourse/discourse · GitHub](https://github.com/discourse/discourse/pull/29952), so reset changes the setting to enabled now.

---

<div class="post-metadata">

### Author: ![AstonJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/astonj/32/215041_2.png) [@AstonJ](https://meta.discourse.org/u/AstonJ)
#### Post date: [November 18, 2025, 3:11am UTC](https://meta.discourse.org/t/emojis-update/355624/58 "2025-11-18T03:11:54Z")

</div>

Has anyone created a plugin to bring back the Apple emojis? I’m really missing them 😭

Or is it possible to make our own custom emojis show up first and override basic text like `:-)`?

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [November 18, 2025, 9:34am UTC](https://meta.discourse.org/t/emojis-update/355624/59 "2025-11-18T09:34:33Z")

</div>

I’ve not made a plugin but I forwarded the “twemoji” folder to a different folder where I uploaded all the Apple icons, so those are what appear on the site.

Quite simple, although you have to do some duplication and renaming to make sure there aren’t any broken ones, and of course it’s down to you to get the images of new ones released.

---

<div class="post-metadata">

### Author: ![mentalstring](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mentalstring/32/168934_2.png) [@mentalstring](https://meta.discourse.org/u/mentalstring)
#### Post date: [November 29, 2025, 4:57pm UTC](https://meta.discourse.org/t/emojis-update/355624/60 "2025-11-29T16:57:52Z")

</div>

> [@j.jaffeux](#):
>
> and then there are all kind of things to handle like aliases

Is there a simple way for an admin to add some emoji aliases?

This question, because we have upgraded to 2.5 and with that, switched the emojis set from Apple to Noto, but now we have quite a few of these issues:

 ![Screenshot 2025-11-29 at 16.17.26](https://global.discourse-cdn.com/meta/original/4X/8/9/0/89042c5dea6e583e6adc764a05d24f4f7e75f406.png)

The one working one is using `:netherlands:` while all the others are using 2-letter country codes which used to work but, I assume, were alias that now no longer work.

Any clean way to address this as we have a large amount of posts affected by this? I’m a little wary of trying `posts:remap` on this, but open to suggestions.

While I’m at it, here in meta, `:de:` works just fine for 🇩🇪, so I guess twemoji comes with that alias too — just not Noto.

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [November 30, 2025, 8:05am UTC](https://meta.discourse.org/t/emojis-update/355624/61 "2025-11-30T08:05:34Z")

</div>

Personally to fix this I just duplicate the image with lots of different names. It’s messy but it works.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [November 30, 2025, 10:18am UTC](https://meta.discourse.org/t/emojis-update/355624/62 "2025-11-30T10:18:48Z")

</div>

> [@mentalstring](#):
>
> While I’m at it, here in meta, `:de:` works just fine for 🇩🇪, so I guess twemoji comes with that alias too — just not Noto.

I changed the emoji set on my site to Noto and `:de:` seems to work fine:

 ![Screenshot_20251130_111124_Firefox](https://global.discourse-cdn.com/meta/original/4X/4/d/0/4d0845c37bfb69b92e71ddb51166c88c2f7b5e80.jpeg)

Is there anything special in the raw of your post? Does ‘rebuild html’ help?

Those aliases are not added per emoji set

> <https://github.com/discourse/discourse-emojis/blob/a8e8e9c8b84cc249bdc174ca1d29d2b9637b6484/lib/discourse_emojis/constants.rb#L759>

---

<div class="post-metadata">

### Author: ![mentalstring](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mentalstring/32/168934_2.png) [@mentalstring](https://meta.discourse.org/u/mentalstring)
#### Post date: [November 30, 2025, 3:22pm UTC](https://meta.discourse.org/t/emojis-update/355624/63 "2025-11-30T15:22:40Z")

</div>

I’ve tripled checked and `:de:` doesn’t do it for my installation. The only difference I can think of is that we are on 2.5.2 and you are likely testing it against tests-passed.

I had a look in `discourse/discourse-emojis` and there is indeed a [noto/de.png symlink](https://github.com/discourse/discourse-emojis/blob/main/dist/emoji/noto/de.png) which seems to have been added [back in March](https://github.com/discourse/discourse-emojis/commit/007a5c043c4a3d2fbd06fc74dda4785219092f06), and although 2.5 was released in June, it might have not made it?

Here’s what I have/don’t have:

```plaintext
# ls -l /var/www/discourse/public/images/emoji/{twemoji,fluentui,noto,unicode}/{de,flag_de,germany}.png
ls: cannot access '/var/www/discourse/public/images/emoji/fluentui/de.png': No such file or directory
ls: cannot access '/var/www/discourse/public/images/emoji/fluentui/flag_de.png': No such file or directory
ls: cannot access '/var/www/discourse/public/images/emoji/noto/de.png': No such file or directory
ls: cannot access '/var/www/discourse/public/images/emoji/noto/flag_de.png': No such file or directory
lrwxrwxrwx 1 discourse discourse 22 Oct 3 14:40 /var/www/discourse/public/images/emoji/fluentui/germany.png -> ../unicode/germany.png
lrwxrwxrwx 1 discourse discourse 22 Oct 3 14:40 /var/www/discourse/public/images/emoji/noto/germany.png -> ../unicode/germany.png
lrwxrwxrwx 1 discourse discourse 11 Oct 3 14:40 /var/www/discourse/public/images/emoji/twemoji/de.png -> germany.png
lrwxrwxrwx 1 discourse discourse 11 Oct 3 14:40 /var/www/discourse/public/images/emoji/twemoji/flag_de.png -> germany.png
-rw-r--r-- 1 discourse discourse 246 Oct 3 14:40 /var/www/discourse/public/images/emoji/twemoji/germany.png
lrwxrwxrwx 1 discourse discourse 11 Oct 3 14:40 /var/www/discourse/public/images/emoji/unicode/de.png -> germany.png
lrwxrwxrwx 1 discourse discourse 11 Oct 3 14:40 /var/www/discourse/public/images/emoji/unicode/flag_de.png -> germany.png
-rw-r--r-- 1 discourse discourse 854 Oct 3 14:40 /var/www/discourse/public/images/emoji/unicode/germany.png

```

The alias `flag_de` and `de` are in there, but only for some sets. It seems that both noto and fluentui don’t have it’s own `germany.png` and are falling back to the one in the unicode set. Perhaps because of that, the aliases aren’t (weren’t?) being created.

Unless someone sees a cleaner workaround, I might try to create the missing symlinks on the `after_code` hook of the build process, at least until we hop into a Discourse version that has that change included.

[Previous page](https://meta.discourse.org/t/emojis-update/355624.md?page=2)
