

My thinking on a per-device basis was that themes might work better/worse in a mobile vs. desktop browser, so people might prefer different experiences, but I could see the other side of things as well. That was also the rationale for making compact mode be in the cookie rather than saved in the db.
I honestly don’t know what the expiration of the session cookie is. It might depend on the browser. I think it is pretty long-lasting unless people clear their cache because I have definitely loaded up piefed instances after a long time and have still been logged in.
As for technical details, to save space, it might make sense to make a key (maybe like ignore_comm_theme) be a comma-separated list of community id’s that people have unchecked the box. That means you can easily convert this to a list with split and then see if the currently requested community id is in that list. Being the id means that it is unique for the instance and avoids name collisions like the actual community name might have (how many linux communities do we have now). It also keeps things relatively small since the cookie has a pretty small size limit iirc.






You brought this up in the matrix room, so I will try to put down here a summary of what I responded in there so that it lives in a more permanent fashion.
Lots of profile changes are not federated out in realtime, extra fields being one of them. Instead, your profile, as seen on remote instances, is only refreshed periodically. In the case of PieFed, when an instance receives an activity from a user (post/vote/comment), and their profile information hasn’t been refreshed within the past 24 hours, then the instance will query your home instance to make sure it is up to date.
What this means is that if you update your extra fields right now, it can be up to 24 hours before that has propagated out to remote instances depending on when your profile was last refreshed on their instance. It could be even longer if you don’t federate any activities out in that time.
A very similar process also happens for lemmy as well as for other “actors” in the ActivityPub parlance. This includes communities and feeds.