Having WiFi managed by a separate chip means your code is simpler, you don't have to cache socket data, or compile in & debug an SSL library. Send basic but powerful socket-based commands over 8MHz SPI for high speed data transfer. You can use 3V or 5V Arduino, any chip from the ATmega328 or up, although the '328 will not be able to do very complex tasks or buffer a lot of data. It also works great with CircuitPython, a SAMD51/Cortex M4 minimum required since we need a bunch of RAM. All you need is an SPI bus and 2 control pins plus a power supply that can provide up to 250mA during WiFi usage.
We placed an ESP32 module on a FeatherWing with a separate 3.3V regulator, and a tri-state chip for MISO so you can share the SPI bus with other 'Wings. Comes fully assembled and tested, pre-programmed with ESP32 SPI WiFi co-processor firmware that you can use in CircuitPython to use this into WiFi co-processsor over SPI + 2 pins. We also toss in some headers so you can solder it in and plug into a doubler, but you can also pick up a set of stacking headers to stack above/below your Feather.
We've tested this with all our Feathers and it should work just fine with them except the ESP8266 & ESP32 Feathers (cause they already have WiFi!). For use in Arduino, the '328 and '32u4 you can do basic connectivity and data transfer but they do not have a lot of RAM so we don't recommend them - use the M0, M4 or similar, for best results! For CircuitPython use, a Feather M4 or nRF52840 works best - the M0 series does not have enough RAM in CircuitPython.
The firmware on board is a slight variant of the Arduino WiFiNINA core, which works great! At this time connection to Enterprise WiFi is not yet supported.