and I actually don't hate that bit (I really like lexicons, although I might have approached it in a different way) - what I hate is the aggregation layer. I know that it is possible to have an AppView-less atproto app (e.g. RedDwarf), but I feel like much of the ecosystem still defaults to the assumption that it will go through the Bluesky AppView.
Unrelated apps (https://leaflet.pub/, https://tangled.org/, http://semble.so/) don't go through Bluesky Appview (since they need aggregations of different kind of data). I think aggregation is the only model that can compete with centralized services on UX, but of course different apps would need different backends.