In my own system, I currently have 8x ESP-01S, 6x Wemos D1, 4x Sonoff Basic 12x Sonoff S20, 2x Sonoff SV and a NodeMCU - 33 devices in all to update when I make a code change.
They all have a common code base and either a 1M or 4M SPIFFS binary. Doing it 33 times with 6 different hardware types would be not only error-prone and time-consuming but maddening
Doing it the "server" way "just works". I copy the binaries to my server, and wait....job done
My system uses NODE-RED, but Apache / PHP ...<whatever> will also work of course as long as the logic is the same.
Hope it helps someone: