You really want Thread over Matter
Do you mean over WiFi? Matter and Thread don’t have overlapping functionality. In the OSI model, Matter is like layers 6-7, Thread covers 3-5, and 802.15.4 is 1-2 (MACPHY).
Matter also works over Ethernet and WiFi.
ZigBee is like 3-7 also using 802.15.4.
Z-Wave is also like 3-7 with some sub-GHz MACPHY.
For Matter, low power devices and sleepy devices should use Thread to optimally conserve battery.
Ethernet > WiFi unless wireless is needed for other use cases like cameras, media boxes, dedicated power, etc.
Bluetooth (low energy) last I checked is only supported for commissioning a device. It does use the Matter protocol, and I’ve blinked some lights on test hardware over BLE, but it wasn’t officially supported.
So I’ve only been using nix about a year and only used flakes. I use in two ways.
First, I have my main nix flake. Most everything is controlled from that. It has several outputs from full blown nixos builds per host or some home manager builds for non-nixos systems.
Third-party flakes I use as inputs to my own flake then use the override system to inject them into nixpkgs. Then I just install whatever like normal from nixpkgs. I can either override an existing pkg (neovim nightly replaces regular neovim for me), or you can just add as a new package to nixpkgs by using a different attribute name.
Second way is for projects with their own repo. I’ll add a project flake that has a devshell with direnv so as soon as I enter that directory it sets up a sort of virtual environment just for that project. You can add outputs to it so others can use as a third-party flake.
My main starting point was https://github.com/Misterio77/nix-config for this design.