Ok, keeping the feed consistency between the outbox model (only downloading certain event kinds from certain relays based on the author's lists) + maintaining EOSE's for each subscription in each separate relay so we don't download things twice + rotating the filter within each relay because either the follow list or the kind list is too big for that particular relay + reconnecting to AUTH as separate users that are logged into the app + packing as much into a single subscription as possible because many relays limit the number of subscriptions is driving me slighly crazy.

Nostr is easy only in the first 10 days of developing an app.