I settled on Zigbee for door, window and some motion sensors, stand-alone buttons and other devices that need to be battery powered but for everything that's built into a wall or perma-attached to an outlet (like light switches, dimmers and wall plugs) I use generic commodity hardware running open source Tasmota firmware. These devices are based on standard reference designs, made by multiple Shenzen manufacturers and dirt cheap via Amazon, eBay and AliExpress. They're mostly based on ESP-8266 or ESP-32 chips and communicate via wifi.
The reason I use wall-powered wifi devices alongside Zigbee is the Zigbee architecture was designed to enable tiny battery powered devices that can run for a year or more on a small battery. Zigbee does this really well but I didn't want to be changing batteries on nearly a hundred wall switches, plugs and sensors that are connected to 110V anyway or perma-installed in places where wall power was easy to supply. There are also many devices like ultra wide band motion sensors, RF bridge repeaters, etc that can't be battery powered for long periods.
This Wifi+Zigbee split architecture has worked flawlessly in both our primary residence and a vacation home but they are both large detached homes, well-covered by wifi mesh routers with wired backhaul and other 2.4Ghz wireless neighbors a hundred or more feet away from our outer walls. So it's important to test wireless range and environmental compatibility inside your specific wall construction and unique RF domain before settling on wireless standards and architecture and installing a bunch of devices. Also, I'll mention that it's always tempting to just use wireless backhaul because it's easy but I think a big reason my large, complex home automation installs have avoided issues with randomly varying latency and intermittent signal loss is that I put in extra effort to get gigabit wired backhaul to each wifi mesh node and wired a Zigbee node alongside each wifi node. This entailed getting creative, like using an old pre-existing coax cable run with a Docsis modem to one mesh node and powerline ethernet to another. I'm pretty sure that extra pain up front prevented a lot of niggling gremlin pain later.