Small Wins, Clean Code, and a Peek at Docker Offload
003 - UI polish, cleaner code, and early experiments with Docker Offload.
Hey folks, welcome back.
This week’s update is going to be a little lighter than usual. I had some family commitments that meant I couldn’t spend as much time vibe coding Rookify as I’d hoped. But hey—that’s the reality of building a startup while juggling life. Even small wins count, and this week was about polish, cleanup, and laying groundwork for future collaboration.
🎨 Polishing the Game Analysis Page
Most of my time went into refining the Game Analysis page, the place where users upload games and get feedback. Up until now, the UI felt clunky and the backend logic for metrics wasn’t as robust as I wanted. So I did a pass to clean things up and make sure the numbers actually reflect what’s happening in the game.
The biggest change here was the introduction of a centralized accuracy calculator:
One Source of Truth – Previously, different parts of the app (game cards, the overview tab, and coach notes) each had their own way of calculating accuracy. Now, everything is driven from a single module so the numbers always match.
User-Focused Metrics – Accuracy is only calculated from your moves—not both players—so the results really reflect your performance.
Smarter User Colour Detection – The calculator now automatically works out if you were White or Black, even if your usernames differ slightly across Chess.com, Lichess, or local accounts.
Consistent Scoring Model – Every move is scored on a label-based model: Brilliant (100), Best (95), Great (90), Mistake (40), Blunder (10), etc. Accuracy is then the average of your moves played in that game, with counters for key categories (brilliants, mistakes, blunders, etc.).
Cleaner Coach Notes – Because coach commentary is generated from the same calculation, the insights you see on the Game Analysis page will always line up with the numbers on your game cards.
Here’s why that matters: before this refactor, it was possible to see a mismatch—say, your game card showing 75% accuracy, but the overview tab saying 72%. That’s fixed now. It’s not flashy, but this kind of consistency is what builds trust in the analysis.
On top of that, I:
Refactored the Game Analysis page for smoother state management and better data fetching.
Updated the UI to display brilliant moves and overall accuracy more clearly.
Removed unused helper functions for a cleaner codebase.
Added token validation in the authentication context so sessions stay secure.
During all this, I also stripped out a handful of unused helpers. It’s small stuff, but removing dead code makes the project easier to maintain, reduces confusion, and keeps the vibes cleaner for future contributors.
☁️ Exploring Docker Offload
One new thing I did get to explore was Docker’s new Offload service. It’s essentially a cloud-based version of Docker Desktop, which could be really handy once I start collaborating with other engineers. Instead of relying on local environments, everyone can share the same containerized setup in the cloud.
For a solo project right now, it’s not mission-critical, but it’s the kind of infrastructure decision that will make scaling the team (or even just bringing on a contributor) much easier in the future.
🔮 Looking Ahead
Next week, I’ll be working on adding an opening library so Rookify can recognise the openings you use when analysing your games. This will lay the foundation for deeper insights into your repertoire—what you play most often, how well those openings perform for you, and what alternatives you might want to explore.
Alongside that, I’ll continue polishing the frontend and start tackling one of the bigger, unique features that came out of the feedback survey.
Even though this week was lighter, I’m glad I kept the rhythm going. Sometimes building Rookify is about adding new features, and sometimes it’s just about strengthening the foundations.
Thanks for following along,
– Anthon
Chief Vibes Officer @ Rookify
By the way, if you’re a chess player, I’d love to hear about your own improvement journey.
What’s been frustrating? What’s actually helped? And what kind of innovations do you wish existed in the chess world? If you’ve got 3–5 minutes to spare, please fill out this short survey—it would mean a lot and will directly help shape how Rookify evolves.
Thanks again