The best place to start would be to ignore what you currently have, for the moment, and think about your requirements, at a high level.
In the corporate world, we start with Business/User Requirements - think “what does a user need to be able to do”, these are pretty abstract things like:
Have all photos accessible on mobile
Have all photos accesible by App A
Have all photos accesible by App B
Etc
Then take all those User requirements as a guide to the Functional/System/Technical requirements (what solution meets which requirement?)
I kind of just focus on data stability myself (3 local copies, one cloud backup, with local copies being sync’d manually, to act as a sort of buffer from my own fuckups), and implement different solutions for each requirement/system.
Like Syncthing on Windows/Linux/Android, because it just works for regular sync, Resilio on my Media server and Mobile devices, because it has Selective Sync, Tailscale on mobile devices and a single server at home for remote access and remote control.