Lots of stuff:
- Many clients implement nip 65
- Many clients have decent content filtering, including WoT scores
- Much improved client designs
- More/better libraries
- Speaking for myself, Coracle's notifications, thread loading, etc are much more stable
You're right that the bugs and incompatibility is getting worse and needs to be a focus going forward. But probably the biggest thing is that people are creating a ton of proof-of-concept clients (like flare, flockstr, nostr.app, nostapp.link, yondar, shipyard, etc). This does increase the bugs, but it's also an important part of growth and maturity.