Profile Page Update: 4 Stats I Should've Added Months Ago

June 15, 2026 · 4 min read
By Made Me The Dev

okay so the profile page has basically been untouched since March. not because I forgot, I just kept opening it, thinking "yeah I should add stuff to this" and then going and doing something else. three months of that.

I finally sat down and actually did it. four things got added, one bug got fixed. I am too lazy to include the screenshots of before and after so sorry lol.

the daily streak was just sitting there doing nothing

this is probably the most embarrassing one. the streak counter — your current playing streak and your all-time longest — has been tracked since basically the beginning of the site. it lives in localStorage, it increments when you play, it resets if you skip a day. the data has always been there.

it was just... never shown anywhere on the profile page. I genuinely don't know why I shipped the streak system without putting it on the profile. it's there now. below the XP bar, current streak on the left, longest on the right. took maybe 20 minutes to add. I waited three months to spend 20 minutes on this. cool cool cool.

words typed

the stats row used to show three numbers: games played, total time, and total characters typed. characters is kind of a useless unit honestly. "58,342 characters" — okay? I cannot picture what that means.

words typed was already being tracked the whole time (lifetimeStats.totalWords, increments every run). just never shown to anyone. it's the fourth stat now. 12,000 words actually means something to me. 58,000 characters doesn't.

accuracy trend arrow

below the stats row there's now a small line showing your average accuracy across your last 10 runs and an arrow — up, down, or flat — comparing it to the 10 before that. shows up once you have 20+ games, otherwise there's nothing to compare against so it just doesn't appear.

the reason I added this: I kept noticing my own accuracy slowly sliding while I was focused on WPM. the XP formula already hits you for inaccuracy but the profile never made it obvious. now it does. if that arrow is pointing down that's on you to fix, not me.

the "almost there" badge thing

there are 37 badges. most people don't scroll all the way through the badges section to notice which ones they're close to — you'd have to look at every individual progress bar. so now there's a highlighted strip at the very top of the section that surfaces up to 3 badges where you're 75% or more done. icon, name, progress bar, percentage. click it and the tooltip opens same as always.

secret badges don't show up there regardless of progress. if you have nothing near 75% the strip just disappears, it doesn't show an empty box or anything.

I should've added this when I first shipped the badge system. whatever. it's there now.

the graph was broken on theme switch and I only noticed by accident

if you were on the profile page and switched between light and dark mode, the performance graph wouldn't update. it just stayed the wrong colors. the canvas draws itself by reading the current theme at draw time, but the only things that triggered a redraw were page load and clicking the filter buttons. the theme toggle wasn't connected to any of that.

fixed by hooking into the theme button and triggering a redraw on the next animation frame, after the dark class actually gets applied. genuinely like one extra line. it was broken for a while and I only caught it because I was switching themes to check something else entirely. mild embarrassment.

stuff I still haven't done

the ghost race records every run's full keystroke timeline. last run, best run, chars per second the whole way through. none of that is visualized anywhere on the profile. a replay of your best ghost would be actually cool to build. it's in the backlog. not done yet.

also 60 days of daily challenge history is stored per UTC date and none of it has a calendar view. green squares for days you completed, gray for missed — you know the thing. I want it. haven't built it.

anyway go check your profile and see what's new. if your accuracy is trending down that's information.