March 6, 2025
![]()
Good developers know that optimizing an application too early often leads to focus and time problems. Which is precisely why I opted to sideline (some) optimizations until now, laziness definitely had nothing to do it. But as Gachatracker is trucking along nicely, I figured it's time to speed things up. For developers: I mostly worked around indexedDB problems, such as bulk adds instead of individual additions. Since indexedDB acts as a local cache and needs to load a hefty amount of data on each page reload, it needs to be fast.
Some stats about improvements:
Booting up Gachatracker for the first time on a new device:
Page reloads after initial load has been completed:
There was a bug happening if you recording a new stat for the first time. If you had other, older stat records from different games, the gain amount would be displayed incorrectly upon reload because it falsely matched up to other stat types. This occurred because records from other games were being loaded mistakenly. The issue has now been resolved.
Now characters always come first, then weapons. Groups are sorted by rarity in a descending order.
![]()
No longer is every game's average daily gain stuck in "Not enough data" hell. Some still are but hopefully that will change over time as more users log data into those games.
Keep in mind that those stats are quite inaccurate at the moment. Still needs more for data pretty much every game and the methodology needs some refining as well. Turns out, user-reported data isn't 100% accurate. Who knew?
![]()
I also reduced the amount of stats that are included. Or, more specifically excluded all the data from before Gachatracker launched. That included hundreds of records per game from me and only me. That data is accurate but I think it doesn't paint the whole picture, especially if we compare it to the newly generated data, which is still a bit lacking simply due to lack of time. I did record my own stats for 2+ years before Gachatracker after all.
I think this is the first major downtime for Gachatracker. Basically, on the backend I refactored and updated the way configuration works (URLs, database credentials, ports etc). This is great in the long run but I didn't account for how AWS would like these changes. Turns out, AWS wasn't a fan. Fortunately I managed to figure it out relatively quickly and everything is all right in the world once again.
Time to track some gachas!