up-vote on sonoff-tasmota.
I use this on 6 or 7 ESP8266 devices, and it's really very mature now.
It's really very flexible, although I do tend to build custom images (mainly just to get my wireless burnt in so I don't have to fit a switch to get them operational).
Mine include:
Immersion heater controller with 4 DS18x20 sensors and 2 SSR
Pond controller (basically an adapted 4 way extension lead with D1mini & relay board bolted to outside).
3 sonoff for lights.
Greenhouse controller which talks to a separate MCU via 1-wire to gather soil dampness, temp, humidity (and originally was to control the window, but my wife barred me from control insisting it took the fun out of gardening!).
All are exclusively MQTT controlled; and even though they support wemo (?), I choose to emulate wemo in NR for Alexa control, and use MQTT to actually control the devices.
All is fine until the main controller (orangepizero) corrupts it's SD card and needs a few hours of rebuild, taking out the hot water!
On MQTT - I did notice a NR contrib node which implemented Mosca inside NR as an MQTT server; did not investigate much as it seemed hardwired to a backend I don't use, but refactored to use a memory backend, it would be good for most of our kind of usage.
Also on MQTT, watch out for MQTT nodes in NR adopting QOS 2 by default - always check and set your QOS and Retain settings to what you actually want (note Mosca does not do QOS2, but recent mods allow it to 'downgrade' certain messages if so configured).
s