websocket. I don't think mobile supports push notifications (I may be wrong, and that may only be correct for iOS)

Just browser refresh should be fine. Is that not working for you?

I'm working on having new photos to appear immediately, but I haven't gotten around to it yet. Hopefully next week. :)

Exactly. :)

There's a small penalty (I cancelled one since I'm moving it from Hokkaido to Tokyo, due for renewal in Sept, and the penalty was 600 yen)

Huh, look at that -- Sakura will refund you for unused time if you decide to cancel a yearly-paid contract. That's interesting.

Of course, if you used Rails, that would have been set up by default :P

Yet another thing I don't like about PHP: it kind of locks you in to the request/response cycle, it's counterintuitive or you have to use external services to spin up background tasks or threads to do things outside of the request context

If I'm on the fence whether I should cache using a column like that or not, I usually try to estimate where most of the time will be spent cumulatively -- in your case, I think most of the time will be spent querying instead of people deleting their accounts (hopefully :P)

big things like that usually go in background jobs in my apps. For example, PrivateLog will still have some of your data when you quit but will be fully erased after 24 hours, etc.

I usually tend to do expensive operations during inserts / updates / deletes to cut down on read query time, because that's usually what I optimize for, so that's why I use the counter cache