Cantokeys is a romanization optimized for keyboard input. It uses no digraphs or tone letter 'h'.
The rationale in 1994 for Jyut6ping3's tone numbers - ease of typesetting - does not apply in the 2020's.
Cantokeys is closer to Jyut6ping3. It replaces digraphs with unused keys:
AA⇨V which looks like the adjacent strokes of the As
EO⇨X is the cross of different vowels
OE⇨R approximate OE in non-rhotic accents
NG⇨Q has a tail like g. Also, Q in English is K which like G is a velar
YU⇨Y
However, it distinguishes the high level and high falling tones like Yale.
Tone is represented like this:
1. ā (IPA ˥)
2. á (˧˥)
3. a (˧)
4. a̖ (˨˩)
5. a̗ (˩˧)
6. a̱ (˨)
with the addition of grave accent above (eg dò=多) for the high falling tone
Finally, it distinguishes C⇔Q, S⇔X, Z⇔J, J⇔Ñ, but represents the latter as Ȼ,Ꞩ,Ƶ,Ɉ. These differences are generally preserved in the 梧州 topolect, as well as among older speakers in 廣州. It's a contrast dating back to Middle Chinese, and preserved in Standard Mandarin.
Everything else is the same as Jyut6ping3, such as the use of 'J' for the 'Y' sound.
Finally, words are not spaced. This increases readability by highlighting the semantic boundaries.
Example sentence:
佢哋冚家咁肥㗎。
Kx̖ide̱i ha̱mgv̀ gam fe̖i gv.
你日日都騷擾博士。
Ne̗i ɉa̱tɉa̱t dòu sòuɉíu bokꞩi̱.
Its Cantonese name is ɉi̱qpiq=認拼
Why prefer Cantokeys romanization? It's compact and therefore quick to type, corresponding to an efficient way of choosing Characters in an IME. It expresses tone elegantly, while the extra letters permit an extra level of expression and disambiguation. I'll admit it has readability issues, namely EO⇨X, but the (lack of) spacing combined with tone system helps. Kx̖ide̱i can easily be guessed to be 佢哋; ha̱mbv̱qlv̱q could probably be guessed to be 冚唪唥.