444 raised the issue of performance suffering when there are a lot of custom emoji (~20k). Some recent perf improvements addressed this using a combination of content-visibility and IntersectionObserver, which is great as a quick fix but doesn't address the root problem of needing to render ~20k DOM nodes.
The only solution to that is rendering a real virtual list. Unfortunately this has complexity and accessibility considerations, so it's not straightforward to implement. It might make sense, though, especially since some use cases (e.g. a massive Slack/Discord channel, a big Mastodon instance) might have even more than 20k custom emoji.
444 raised the issue of performance suffering when there are a lot of custom emoji (~20k). Some recent perf improvements addressed this using a combination of
content-visibility
andIntersectionObserver
, which is great as a quick fix but doesn't address the root problem of needing to render ~20k DOM nodes.The only solution to that is rendering a real virtual list. Unfortunately this has complexity and accessibility considerations, so it's not straightforward to implement. It might make sense, though, especially since some use cases (e.g. a massive Slack/Discord channel, a big Mastodon instance) might have even more than 20k custom emoji.