In case you didn't know, I like the micro:bit controller for coding & robotics. Small, $17, code with browser based https://makecode.microbit.org/# , Java, and micro python. Once you get in to using it, you find you need something more. You want to connect more than three things ; you have some components that require 5V. In order to do these, you need to buy an extension board, aka expansion board, (aka hat, aka shield). There are several and the latest one that I have tried is the IObit from Kittenbot.
The IObit has many nice features. It is only $7 (i bought mine from adafruit , but you can order from kittenbot or amazon ). It has a built in buzzer for sounds, as well as an on/off switch for using the buzzer (top middle). It has an mp3/headphone jack if you want a better speaker (bottom left). It has headers for all of the pins (middle rows of yellow red black) as well as an informational silk screen on the back. It has 3, 5V pins (left end of the header rows). It has a 5V USB input and an on/off button (bottom right). It even has the large "gold plate" pin connections similar to what is on the bottom edge of the micro:bit. Those two holes in the top right & left corners, they are for attaching to Lego's.
I really like the IObit. It is the least expensive one that I have found that has almost every thing. The one thing I miss is motor drivers, but that would come at a cost. Some people don't use motors, they just use continuous rotation servos. You will need to buy some jumper cables to make connections (socket to alligator & pin/socket combos).
I did some videos connecting various components (speaker, neopixels, buttons, servo, 1602LCD, distance sensor).
I bought a 5V, cell phone battery pack for $15 to power this. One issue I ran into with this is that it powers off after 30 seconds when not getting a draw. So if the microbit is not actively powering something , the power goes off. For example, if the distance sensor was not triggering the speaker, the power went off. I imagine this is a safety feature so it doesn't keep charging your phone when the phone battery is full. So I pulled out a 7 year old "lipstick" charger and tried it. Apparently this does not have that safety feature because it didn't shut down.
You can power the device from the 3V input of the micro:bit if your components do not require 5V. Servos, 1602LCD, and ultrasonic distance sensor need 5 V. Possibly a long string of neopixels might light better with 5V compared to 3V.
The other extension boards to look at are :
a) elecfreaks motorbit ($14). elecfreaks has several boards as well as micro:bit kits
[all pins on headers, motor drivers, 5V pins, 6-9V input]
b) Adafruit Crickit ($30) adafruit has tons of components
[motor drivers ; components assigned a specific connection location, 5V input]
c) lectrify bit:booster ($35)
[motor drivers, grove ports, neopixels on board, battery pack attached, 2 ways to connect]
d) MakerBit & MakerBit+R ( $35 & $40) sold as boards or kits
[ribbon cable for 12 touch point sensors and 12 LED's, 5-12V input]
[+R all pins on headers, some 5V pins, motor drivers, grove ports, 5-12V input]
e) Birdbrain Robotics HummingbirdBit kit ($100)
[robotics kit including servo, LEDs, couple of sensors ; app to code via mobile device]
Kittenbot also makes a handheld game device that you code your own games. It is called MeowBit and costs $40. It has a 1.5" display and 6 buttons. It takes power form a 3.7V lithium ion battery with JST connection (you might need to buy another component to recharge this) or a 5V USB battery (cell phone charger). You code games using makecode arcade. Obviously you can share these games with others. It has the edge header like the microbit, so you could even add other components, like lights or additional buttons.