I had fun building a little UTF-8 playground about a year ago to drive some of the concepts home and to go back to as a cheatsheet.

https://github.com/incanus/learn-utf8

I made an interactive one since I couldn't find anything that allows individually set/unset bits and see what happens. Here: https://utf8-playground.netlify.app/

Very nice! That's fun to play with.