This story is a summary of Raycast's blog "No code reviews by default".
At Raycast, we do not require code reviews. Engineers push to the main branch and request reviews when they think it's necessary.
They think pull requests discourage trust, slow down and don't prevent bugs. They believe they should give full ownership and responsibility for the engineers, hence give them the freedom to push to master without any code review - and allow them to ask for one if they feel like they need it.
How does it work?
Everybody works on the main branch and is allowed to push changes. They trigger an internal release every night which includes all changes that got committed during the day.
The daily internal releases make it simple for them to collect a lot of feedback to iron out bugs or usability issues. If they are happy with the quality of a feature, it gets released, and if not - they use a feature flag to keep it internal.
However, there are a few situations where they demand a code request: if they touch a new part of the codebase, or for new team members.
It's up to you and your colleagues to set the rules for your team. Don't adopt best practices in a dogmatic fashion. Rather, ask yourself if the circumstances of others apply to you. There is a high chance that they won't, and you find a more suited way to do things.