An onboarding idea for clients:
Don't have a logged out state.
If a user session has no active logged in pubkey, then create one for them.
Don't say "login to begin" just give people an anon experience 100% as good as a logged in one.
Craft the experience of that default key to give the sort of experience you want your users to have.
If the user wants to, they can keep the key. Or, login with their own if they have one.
Make keys be an advantage to onboarding flows, not disadvantage.