The goal of Grub is to create safe and delightful chat messages. Grub
ain't for gooder grammer.
Gibberish (the vocabulary) is fetched from GET /api/grub/bundle and
compiled in the browser. Favorites are kept in memory for this demo — swap the store for
localStorage in production. Nothing is sent anywhere: there is no send endpoint yet.
The player list (@mentions) is a client-side placeholder for this demo — a
real client would get the room's names from its game server. Typing @ takes over
the suggestion chips above with matching names, plus @everyone. A mention at the
front or the back of a message rides along while the words between are judged as usual
(hey @zolt, @zolt gg, @zolt alone). Under the hood a name
is the Gibberish's @user tag — that is all the server ever sees, and the client
swaps the name back in — so no name passes through the vocabulary. Any other @
goes yellow.