August 24, 2026 · 3 min read
The default that broke an entire feature
When messaging appeared on the site, every user defaulted to «only friends can message me first». It looked like sensible care: no strangers, no spam, privacy respected.
It could not work at all. To become friends you send a request and wait. To agree on anything you write. The first message to a stranger never went through, which means messaging worked for nobody except those already friends — that is, nobody.
There was a separate insult in the interface: next to a person you had just found sat a «Write» button that was guaranteed to fail. Offering an action that cannot succeed is its own kind of rudeness.
What is worth noticing here.
A default is not a detail or a matter of taste. The overwhelming majority of people never open settings, so the default is the product's behaviour. Getting it wrong is the same as shipping a broken feature, only invisibly: the code is fine, the tests pass, and it cannot be used.
Privacy by default is a good rule, but it has a boundary. A setting that closes the only entrance to a feature does not protect the person — it disables something they can see in the menu.
The right default here is «anyone», with the restriction remaining a choice for those bothered by strangers. That is exactly how the messengers people use every day work.
And finally, about the fix. Changing someone's privacy setting after the fact is a bad idea, permissible in exactly one case: when there was no choice. The value was set by a default, not by a person. So the migration of old accounts is bounded by date — anything created after the fix is left alone, because there it is a deliberate choice.
/// Кто может написать первым: "EVERYONE" | "FRIENDS" | "NOBODY".////// По умолчанию — кто угодно. Сначала здесь стояло "FRIENDS", и это/// было ошибкой: чтобы подружиться, нужно отправить заявку, а чтобы/// договориться о чём-либо — написать. При таком умолчании первое/// сообщение незнакомому человеку не проходило никогда, и переписка/// на сайте просто не работала.////// Ограничение остаётся, но как выбор человека, а не как исходное/// состояние: кому мешают незнакомцы, ставит "FRIENDS" или "NOBODY".allowMessagesFrom String @default("EVERYONE")