What are those apps and why they're crucial for automation in general?
Mosquitto is so called MQTT broker. The idea behind is, that each device (client) sends his messages to the broker labeled with so called "topic". You can imagine it like a subject in e-mail or radio frequency channel. There are other clients which could subscribe to the particular topics, causing that the clients will receive all messages sent by the device. Each device can also receive control messages.
Node-RED is a visual flow programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
Here, as an example is the flow to control my floor lights (later on this in this article):

docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
docker volume create nodered_data
docker run -it -p 1880:1880 --restart=unless-stopped -v nodered_data:/data --name nodered nodered/node-red