A three-column feed that strips engagement down to four muted icons and swaps the noisy trending list for a plain numbered ranking with zero counts attached.
The trending widget: a bordered card holding a bare numbered list (1-5) of topic strings with no volume, no post count, no sparkline — restraint as the feature. Also the flat single-row post action bar (comment, repost, like, bookmark, share) where every icon is the same grey weight and none dominates, which generalizes to any comment/reaction feed.
Design notes
Surface
Discover feed, logged out, root of bsky.app
Navigation
Three columns, no tiers within them. Left column has no nav links at all, just identity and an auth prompt. Center column's entire navigation is a two-tab strip (Discover / Feeds) — one tab is the algorithmic feed, the other opens custom feeds. Right column is a self-contained search-plus-trending widget with no connection to the center.
Layout
Three fixed-width columns on a white canvas, each scrolling independently. No sidebar collapse, no responsive stacking visible at this width.
Density
Comfortable. Avatars ~40px, post text ~15px with real line-height, generous vertical space between posts, full-bleed images inside posts. Built for reading, not scanning volume.
Color
White canvas, black text, one blue reserved for links, the verified checkmark, the active tab underline and the primary 'Create account' button. Every icon in the post action row stays flat grey.
Type
One sans. Display name is bold ~15px; handle and timestamp sit regular grey ~14px on the same line. Post body matches the display name's size but at regular weight. The trending list numbers carry the same weight as the topic text — rank is implied by list order alone, never styled as a badge.
Pattern
The trending card: a bordered white rounded panel with an icon-plus-heading row, then a plain numbered list of bare topic strings — no volume, no post count, no colour coding. A ranking with all the noise removed.
States
Logged out: the left column is entirely replaced by a 'Join the conversation' pitch (headline, Create account, Sign in) — there's no compose box above the feed. The feed itself still renders in full; Bluesky sells the account, it doesn't gate the content.
Don't
Don't add follower counts or engagement numbers to the trending list — the moment you do, it becomes a leaderboard instead of a feed of what's happening, which is the entire point of leaving it bare.
Make it your own
Turn this reference into a useful brief for your project. Copy it into the AI tool you already use.
Add constraintsPreview & edit promptAssembled in your browser. No API key or AI request needed. Changing the fields refreshes the preview.