I’ve been building a chess product called BoardSignal.
It started much more manually: looking across a player’s Chess.com games, finding recurring patterns in their play, and turning that into an improvement Review.
Once I began turning that process into a real product, one question started driving a lot of the development:
What would make somebody actually want to come back?
I didn’t want BoardSignal to become another tool someone opens once, gets an interesting result from, and forgets.
So a lot of the development has been deliberately geared around return behaviour and engagement.
I’ve spent time looking at product psychology, current engagement patterns and what other successful products do to create continuity without just adding meaningless gamification.
That influenced a lot of what BoardSignal became.
Instead of treating every visit like a reset, the product began remembering the player’s history. Reviews became something that could build over time.
Current guidance was added so there was something useful between completed Reviews. Coaching explanations could change when somebody returned instead of showing the exact same thing forever.
Players could ask for another explanation, react to whether guidance was useful, create notes, ask questions, and see their progress continue rather than disappear after one session.
A lot of the work was also less glamorous: debugging onboarding, fixing historical Review recovery, improving reliability, tightening account behaviour, making sure returning players landed in the right state, and removing little points of friction that could give someone a reason not to come back.
For a while, one encouraging signal was that some players were beginning to reach R2, R3 and R4.
That looked like progress because BoardSignal is intentionally longitudinal. It’s supposed to become more useful as your chess develops.
But continued development exposed an uncomfortable measurement problem:
a later Review existing is not necessarily the same thing as a player choosing to return and use the product.
Historical onboarding can legitimately create completed Reviews. A player can keep playing chess and the system can produce another Review.
Those are real outputs, but they aren’t automatically evidence of engagement.
So the measurement model had to evolve alongside the product.
BoardSignal currently has:
101 canonical active players
83 Reviews produced
53 players with at least one completed Review
Those 83 Reviews include 14 from the original manual process, 31 organic live Reviews and 38 historical onboarding Reviews.
I still consider all of that legitimate product history. I just no longer pretend it all means the same thing.
A newer engagement layer now tracks explicit behaviour separately: authenticated Player Room entries, first → second visit transitions, foreground engaged time, Notes, Ask usage, coaching reactions, requests for another explanation, and meaningful-return presentation changes.
That newer instrumentation currently has 42 authenticated Player Room entries and 8 confirmed first → second visit transitions.
And I’m deliberately not turning that into some neat percentage against all 101 players because the instrumentation was introduced later. The populations aren’t equivalent.
That has probably been one of the bigger lessons from building this.
I went from asking:
Can I automate this?
to:
Can I make it useful enough that someone wants to come back?
to:
What should I actually change in the product to encourage that?
and now:
How do I prove that those changes are producing real return behaviour rather than flattering myself with output metrics?
I’m still developing around engagement and retention. The difference now is that I have a stricter standard for what I’m willing to call evidence.
Disclosure: I built [BoardSignal](https://www.adminhub-global.com/)
Self explainatory home page and instructions...
For anyone building something designed for weekly or periodic use: what behaviour eventually convinced you that people weren’t just curious, but were actually forming a reason to return?