8BitDo makes some good controllers, and at least I've never had any issues with my SN30 Pro+ first gen. Some of the older controllers needed special Windows/Mac software to update their firmware and stuff, but I think newer controllers let you put them in flashing mode, mount them as a USB device, and then just drag and drop firmware into them.
I also have a Gulikit KK2 that's been fine. Not a cheap controller, but I'd assume that anything they offer would work too. The Gulikit i've used in bluetooth mode on my laptop and it was fine, tho the 8bitdo i pretty much only use in wired mode. The 8BitDo is cool because it has a removable battery, but you also have the option of using AA batteries too, if you wish.
whoa this program looks cool af
Definitely gonna play with this later