Find out why the web server chokes when serving all the static pages on the first load.
If you are on the emoji screen and receive a new message, it wont know it yet. Maybe after sending an emoji, also check the REST service again for the number of messages.
Update the Website with a better header image for larger screens.
If no Wifi, instead of going into a reboot frenzy, maybe after X attempts. Display a message... "Your wifi is down, press the button to reboot and Try again."
There are two "modes" currently, add a 3rd for no wifi.
Mode 0: Standard bootup and run the publish and subscribe.
Mode 1: HOLDING down button while turning on or holding the button down for 6 seconds got into Mode 1. It disables publish and subscribe and be an AP for the config options.
Mode 2: NEW.. No Wifi, do something different.
Maybe add the ArduinoOTA library so I can send my friend any updates I think she should try so I can give this to her to enjoy now while I work on all the new fun.