We're making the most of the board's capabilities - we're using hte LoRa.h file by Sandeep Mistry, as well as the SSD1306.h driver for the ESP8266 (it's compatible here). This gives us an SPI interface to the LoRa chip, as well as an interface for the OLED screen.
NB - the setup() code and header choices were taken from here: https://hackaday.io/project/27791-esp32-lora-oled-module
Most of the code is actually making stuff look ok... The only processing is to check first if the LoRa stack has a packet for us, and then process it. Then we read chars from the serial port in, and assemble them with the user's Nickname.
We send the nickname with the message in the LoRa packet, so no node has to keep track of users at all - they just process data. This keeps it nicely decentralised - you wanna change your nick? Just reset the board... :P
At the moment - it's a requirement for the boards to be connected to a laptop or some other interface for sending serial data. You could easily use this code to write a wrapper for XMPP (just dump data to serial and back again, though you'd need to figure out channels) and you could integrate data from other sources over WiFi without any issues. With a bigger screen and some sort of input device, you could build IM-Me style devices, no problem - it's really easy!
LoRa is very long range, if a little slow on the data rate. In theory you could have these dotted around the place - fair warning, they don't do too well with walls or stuff getting in the way, so line-of-sight is important.