BE AWESOME
Settings
Dev Notes
📅 September 14, 2026 · ⏱️ 5 min read

Public Profiles: The Outward Half of the Player Hub

Rebuilt from scratch after the room concept's retirement — every section earns its place by representing something a player actually did.

This post is about Public Profiles: The Outward Half of the Player Hub
Manage Your Public Profile →

Public profiles launch today, replacing the room-and-avatar-centered identity page that got retired earlier this week with something built specifically around the Player Hub that consolidation left behind — high scores, achievements, and a collection view, without any of the decorating-a-space framing the old room concept was built around.

Deciding what actually deserves a place on a profile, starting from scratch

Building this right after retiring the old room-based identity page meant genuinely reconsidering what a profile should show rather than just porting the old room's content into a new layout. High scores represent real, demonstrated skill across the games catalog. Achievements represent breadth of engagement, tied directly into last week's cross-game achievement system. A collection view shows what's actually been earned through play rather than assigned arbitrarily. Every section earned its place by representing something a player actually did, which is a meaningfully different design principle than the old room's approach of "decorate a space with objects you've unlocked," where the connection between an object and any actual accomplishment was much looser.

Achievement and collection stats needed a quick-glance summary before the full list

Showing a count badge — how many achievements unlocked, how many collection items owned — right next to each section's heading, before someone scrolls into the full detailed list, gives an immediate sense of scale that the detailed list alone doesn't communicate as quickly. A visitor glancing at someone's profile gets a fast read on "this person has been playing a lot" or "this person is just getting started" without needing to actually count entries in a list themselves. That's a small addition, and it does a lot of work for how quickly a profile communicates anything meaningful at a glance, which matters for a page that's often the very first thing a friend sees when checking someone out.

High scores needed sensible ordering, not a wall of every game played

Listing high scores across a catalog with dozens of games risks turning the section into an overwhelming wall of entries nobody actually reads in full. I sorted the high-scores list alphabetically by game title rather than by score magnitude or recency, which sounds like a minor detail but actually matters for scanability — someone looking for how a specific friend did in a specific game can find it predictably rather than hunting through a list ordered by a metric that changes constantly and means something different from game to game, the exact problem Leaderboards had to solve for comparing scores within one game, showing up again here in a different shape.

What noise I deliberately kept off the page

There's no activity timeline, no visit history, nothing that reads as tracking someone's browsing behavior rather than reflecting what they've actually accomplished and earned. That restraint matters more here than it did for the old room concept, since a room full of decorative objects never risked feeling like surveillance the way a detailed activity log would. Scores, achievements, and a collection are all things a player actively earned and would reasonably want shown. A timestamped log of every visit is a different category of information entirely, and I don't think a public profile needs it to feel complete.

Loading a profile efficiently mattered once achievements and leaderboards both existed

A profile page now has to pull high scores across every leaderboard- enabled game, achievement unlock status, and collection ownership, all for one person, on one page load. Fetching each of those independently per section would mean a profile page firing off far more individual reads than any other page on the site currently does. I built this page around the same batched-read approach the games lobby already uses for showing ratings on every tile at once, pulling everything a profile needs in a small number of consolidated reads rather than one request per data type, which keeps a profile loading quickly even as the amount of trackable player data keeps growing across the site.

Privacy needed a real answer, not an assumption everyone wants to be found

Not everyone who plays games on this site necessarily wants a public page showing their scores and achievements to anyone with the link, and I had to think through what "public" actually means here rather than assuming universal visibility is the obvious default. The profile is reachable by friends through the existing Friends system rather than being an open, searchable directory entry — which keeps this closer to "the people you've already connected with can see how you're doing" than "anyone on the internet can look you up," matching the same connection-based philosophy Friends launched with back in August rather than introducing a more open visibility model for profiles specifically.

This is the identity layer the Player Hub was always missing

The Player Hub consolidation earlier this week gave every player one coherent place to manage their own progress. It didn't give anyone a coherent place to show that progress to someone else — that's what today actually completes. A friend's profile page is the outward-facing half of the same underlying data the Player Hub already tracks privately, and building both halves properly, rather than leaving the public-facing side as an afterthought, felt necessary for the consolidation to actually feel finished rather than half-done.

It's a smaller, quieter launch than the room concept it replaces ever was, and I think that's exactly right for what it's trying to be. The old room asked to be decorated and shown off as a creative space. This one just asks to accurately reflect what someone's actually done, which is a lower but considerably more honest bar to clear, and one I think will age a lot better as the site keeps growing around it than a page built primarily around decoration ever realistically would have been able to.

Hello!