Every pixel stores red, green and blue values from 0 to 255. Changing the last binary digit of a value changes it by at most 1, which is not visible to the eye. This tool writes your message into those last digits, the least significant bits, one bit per colour channel and three bits per pixel.
The message is stored as UTF-8 text, so accents and other alphabets work. It is preceded by a short marker ("IYORK") and its length, which is how the Reveal mode knows where a message starts and ends. Only fully opaque pixels are used, because the browser can alter the low bits of semi-transparent pixels.