How can I select the decoupling capacitor values? I know the rule of thumb is 0.1 μF per VDD pin, but how does this work with multiple types of ICs (or if it even matters)?

I'm trying to make a macro keyboard using a Seeeduino and an I/O expander (I know a matrix layout is industry standard, but I just wanted to learn how I/O expanders work and figured this was a decent way to do it).

So I have the Seeeduino, a [CY8C9540A](https://www.digikey.ca/en/products/detail/cypress-semiconductor-corp/CY8C9540A-24PVXI/1640247) 40-bit I/O expander, and 16 NeoPixels.

The [Arduino NeoPixel guide on Adafruit](https://learn.adafruit.com/adafruit-neopixel-uberguide/basic-connections) says 100-1000 μF for a string, or 0.1 μF per LED. So can I just use a single 100 μF for the whole board?

This is what I have as of now, but it feels... wrong

[![Enter image description here](https://i.stack.imgur.com/5zd2Q.png)](https://i.stack.imgur.com/5zd2Q.png)

Can I get away with this, or do I really need individual capacitors for each, and ones for the Seeeduino and I/O expander as well?

Here's the schematic as of now:

[![Enter image description here](https://i.stack.imgur.com/oeMfp.png)](https://i.stack.imgur.com/oeMfp.png)

I know the expander is overkill, but the 20-bit version is out of stock. Also I have yet to actually connect the data pins for the switches, and the DIN for the LEDs.