> Why do you proxy eveything through your api backend
Because it makes development and maintenance soo much easier, faster and reliable. I don't have to debug stuff that breaks on somebody's embedded esp32. If something breaks, it's in the backend and I see it in Sentry.
> Can the device not check the url directly
Yes, it could (with some modifications). But then you need to transmit and store the URL on the device, which requires establishing a bluetooth connection to change it. I am considering to offer this as an option to give myself and other peace of mind.
> Do you respect etags and other caching headers like if-modified-since
Not yet, but I could implement this very quickly if you send me an email and tell me you need this. :)
(This is a great example how proxying things though the backend makes development easier: If I wasn't proxying, this change would require a firmware update.)