When 1,400 Moves Stopped Looking Large
My 1,400-move repertoire felt large until early users arrived with much bigger ones and exposed performance limits I had never encountered.
3 min read

When I opened OnlyMove to other players, I thought my own repertoire was fairly large. It had grown to around 1,400 user moves, which already felt like a lot to maintain and train. Then some of the first users signed up with repertoires significantly larger than mine.
That quickly exposed a couple of problems I had never really noticed while building OnlyMove for myself.
Large Repertoires Changed the Experience
The first limit was a literal one: the maximum repertoire size I had chosen early on only allowed for around 8,000 user moves. I doubled it to support 10,000-move repertoires with room to spare.
But increasing the limit alone wasn’t enough. A repertoire that fits still needs to feel fast to use.
Sending Less Data
The next problem was communication between the App and the Backend. The original approach was simple and had worked perfectly well for me on a good internet connection. But with a very large repertoire – especially on a slower connection – it could create a noticeable pause between training rounds.
So I changed how small updates are saved. Instead of sending the whole repertoire when only a tiny piece changed, OnlyMove can now send just that change. In one stress test with 10,000 user moves, a routine update went from roughly 1 MB of data to around 90 bytes.
Doing Less Work Inside the App
But after fixing the network side, there was still another pause. This one was happening inside the App itself.
Some operations that were effectively instant with my repertoire became surprisingly expensive when repeated across a much larger one. On the biggest test repertoires, this could add around another second between training sessions. That wasn’t only a responsiveness problem. On phones, unnecessary CPU work also means unnecessary battery use.
So I profiled and optimized those paths for much larger repertoires. On the test repertoire with 10,000 user moves, the most expensive step dropped from roughly 900 ms to 22–28 ms.
10,000 User Moves
After testing OnlyMove with repertoires far larger than my own, I’m comfortable putting an official number on it:
OnlyMove now officially supports and is tested with repertoires containing up to 10,000 user moves.
With opponent moves included, that can mean opening trees with roughly 20,000 total moves.
For comparison, my own repertoire – the one I used to consider large – is only around 1,400 user moves. That doesn’t mean larger repertoires suddenly stop working at 10,001. The stress tests suggest there is still plenty of room beyond that. But 10,000 is now the level I’m comfortable officially promising.
Big Repertoires Are Welcome
If you’ve been holding back because your repertoire felt too big, you’re very welcome to bring it. I’m looking forward to seeing what people build with that room.
- #performance
- #repertoires
- #mobile