Syncing is probably one of the most overpowered things in this app. The only issue is that this app ain’t google; the more people use it, the costlier the (mostly free) service gets. I’ve done my fair share of avoiding high storage files and trying to use text but I worry about the future of Anki sync. The info is too valuable to corrupt. How long till I should try to build my own version of Anki sync as a back up?
I also try to avoid excessive use of storage (both on Anki servers and my devices) e.g. by compressing images as webp when appropriate.
As the usage of Anki and AnkiWeb increases, at some point a pricing system may be introduced where basic, low-capacity accounts are free and heavier users can pay more for more space.
There is already a self-hosted sync server.
I thought about a method to drastically reduce the storage used and came to this probably too complicated and server performance needing solution:
If you would identify every media and storage it in a central pool, the check when a user syncs or has synced, if their media is identical to a media in the pool, and if so, delete the file they just synced and somehow refer to the centrally storaged media. Thus, a lot of media of shared and often used decks, of which a lot of copies would exist, is reduced to one and references to it.
Another solution I just got, is to save the media of shared decks in a central pool and mark it as well. So when the user downloads the shared deck, he has the media storaged on his device but marked as already in the media pool with the identification of the media there. Thus, the media doesn’t get synced but when synced, taken from the media pool.
This has the same effect as the first but would be only specifically for shared decks as other decks are usually either a seldom or not that big, I would guess.