Getting messages onto the screen is the easy part: one WebSocket and about forty lines of parsing. The work starts after that. Emoji shift the positions of emotes, emotes sit on top of other emotes, and a lot of the data you need to draw a message arrives after the message itself.
Source: [Dev.to](https://dev.to/fabianzimber/what-i-learned-building-a-twitch-chat-overlay-egl)