I'm trying to find a convenient way to program my Arduino remotely (by Bluetooth or Wi-Fi) because it will be packed and placed outside of my working place. Found a few ways (Arduino Cloud and Blynk) but most of them are about IoT and this is not an IoT project. Maybe you already faced such a problem. If so, then how have you dealt with this?
My ArduinoOTA library, which is based on Arduino's WiFi101OTA library, was created for upload from IDE. But in some scenarios as for example deployed sleeping battery powered devices it is better to have the update available for download by the device.
In advanced section of examples of the ArduinoOTA library you can find examples of sketch update over download from a http server. The OTASketchDownloadWifi shows update over the InternalStorage object of the ArduinoOTA library with download over the WiFiNINA library.