What goes wrong
The "We Recommend" dialog presents twelve unrelated entries as a single undifferentiated list, sorted by nothing a reader can perceive. A guitar builder, a pedal manufacturer, a large retailer, a karaoke app and a camera-tech channel all sit side by side with equal weight. There is no way to skim it for the one kind of thing you care about, and the list only gets harder to read as entries are added.
The descriptions compound it. They run to full sentences of varying length, so the cards are ragged and the eye has nothing to anchor on.
The drift
The same list exists twice, maintained by hand in two places:
FRIENDS in static/js/catalog.js
- the "We Recommend" table in
README.md
They already disagree. r/bass is in the README and absent from the app. Nothing checks that the two agree, so the gap went unnoticed, and any future edit to one is free to skip the other.
Who it affects
Anyone opening the dialog, which is the only place in the product where these people are credited. A list nobody can read is a poor way to point at them, and it undersells the work of everyone on it.
What a fix has to handle
- Grouping the entries by what they actually are, so the section can grow without becoming unreadable
- Descriptions short and even enough that a card is scannable at a glance
- Bringing the app and the README back into agreement, including
r/bass
- The category labels are new user-facing strings, so they need keys in all ten language tables in
static/js/i18n.js, per .claude/rules/i18n.md
- The twelve description strings are hardcoded English literals inside the
FRIENDS array today, so every non-English user reads them in English. Anything that rewrites them should move them into the i18n layer at the same time rather than re-introducing the same problem in new words.
What goes wrong
The "We Recommend" dialog presents twelve unrelated entries as a single undifferentiated list, sorted by nothing a reader can perceive. A guitar builder, a pedal manufacturer, a large retailer, a karaoke app and a camera-tech channel all sit side by side with equal weight. There is no way to skim it for the one kind of thing you care about, and the list only gets harder to read as entries are added.
The descriptions compound it. They run to full sentences of varying length, so the cards are ragged and the eye has nothing to anchor on.
The drift
The same list exists twice, maintained by hand in two places:
FRIENDSinstatic/js/catalog.jsREADME.mdThey already disagree.
r/bassis in the README and absent from the app. Nothing checks that the two agree, so the gap went unnoticed, and any future edit to one is free to skip the other.Who it affects
Anyone opening the dialog, which is the only place in the product where these people are credited. A list nobody can read is a poor way to point at them, and it undersells the work of everyone on it.
What a fix has to handle
r/bassstatic/js/i18n.js, per.claude/rules/i18n.mdFRIENDSarray today, so every non-English user reads them in English. Anything that rewrites them should move them into the i18n layer at the same time rather than re-introducing the same problem in new words.