Yeah, I didn’t want to frame this too hard as hating on React Native, because it’s clear people do make successful apps with it. (And I guess that makes another reason I should try out Bluesky!)
One of the biggest things for us was that with RN, when a bug comes up in the platform (as it inevitably does), you’re pretty much stuck. The issue tracker is a howling wilderness — a bug thread will get a steady stream of RN users chiming in over years saying the bug is a real problem for them, sharing hacky workarounds, reporting it’s still present, but never get a single reply from a human whose job is to work on RN. Closest it gets to a response from the team, in my experience, is usually the stale-bot threatening to close the issue.
As people here know, the experience in the Flutter tracker is radically different. A bug still may not get promptly fixed, but every last one gets a cogent human response. And my sense is that the bugs that most matter either get fixed, or get to a clear understanding of why they’ll be hard to fix.
So a critical piece of that is the Flutter triage team — they provide that cogent human response at the front line, and then turn the giant stream of new issues filed into a more manageable stream of less noisy issues, so the engineers working on Flutter can engage with those and not just tune the tracker out. I’m grateful that Flutter leadership was able to persuade their higher-ups at Google to fund the triage team, because that’s been a very effective investment in making the community work.
Then beyond the issue tracker, if you go try to make a change yourself, we’ve also found that to be a far more productive experience with Flutter. But this comment is getting long and it’s bedtime here, so I’ll leave it there for now.