I would echo most of @Tinkerer’s thoughts with a couple of differences.
I would add as point zero - GET STARTED. The FUD goes away pretty quickly once you’ve worked though it.
@Tinkerer’s first point was decide on ZHA vs Zigbee2MQTT. I strongly suggest trying them both out. I like z2m best overall, but it is subjective. My basic thoughts on the two are here: ZHA Vs Zigbee2Mqtt - #3 by jerrm.
I agree on starting with a CC2652P stick. The work great with both ZHA and z2m. (Amazon.com, CC2652P2 Zigbee to Ethernet Serial Coordinator | TubesZB Store, Sonoff Zb Dongle-p Zigbee 3.0 Usb Dongle Plus Wireless Zigbee Gateway Analyzer Zigbee2mqtt Usb Interface Capture With Antenna - Automation Modules - AliExpress).
NOTE: with Sonoff you want the ZBDongle-P. The “-E” is a different chip (EFR32MG21), very good, but z2m support is still beta.
Don’t let the the potential Thread compatibility add to the FUD. If you later decide on the SkyConnect or other EFR32MG21 chip, the cc2652p can be flashed to be a great router for your zigbee net.
Then get one each of each type of sensor - that should be pretty cheap. As @Tinkerer suggests, avoid Tuya to start. I have several Tuya products, but it’s variable you don’t want in the mix to start. Sensors are pretty inexpensive. If you can devote a few more dollars to testing, pick up a switch.
I wouldn’t look to get bottom dollar on the test devices. Save that for when your going to buy 15 door sensors for every door in the house.
If you purchase wisely, you may have extended return periods over the holiday if you decide zigbee isn’t for you.
First setup ZHA, it is easiest to get started with. Add devices, create automations, give it a good testing, but don’t get too attached as this is just a test.
If thoroughly pleased with ZHA, you could stop there, but I encourage testing out z2m as well. Just disable ZHA and then install z2m using the same USB stick. You’ll need to re-pair everything, but since we are still in the testing phase with just a few devices, it’s not a big deal. Again, add devices, create automations, etc. Note the differences in how things present, exposed to automations, etc.
Then choose your integration and start building things out for real.
But again, most importantly, GET STARTED !