- Authors

- Name
- Nadim Tuhin
- @nadimtuhin
Sometimes the most interesting projects come from procrastination. That's exactly how Memory Booster started: a side project born while I was supposed to be implementing a WebRTC calling feature for a chat application.
The challenge
In mid-2016, the WebRTC calling feature I needed to build felt daunting, so I did what developers do and channeled that energy into something completely different: a memory game.
Technical stack: embracing MobX
At the time, I was getting tired of Redux boilerplate. Redux works well for large applications, but sometimes you want something lighter. That's when I decided to try MobX.
MobX takes a simpler approach to state management:
- Less boilerplate - No action creators, reducers, or constants
- Straightforward state updates - Just mutate state directly
- Intuitive reactive model - Components re-render automatically when observed data changes
Testing with Jest snapshots
One of the interesting parts of this project was implementing Jest snapshot testing. It was relatively new at the time and gave a solid way to catch UI regressions:
- Quick test writing - Generate snapshots with minimal code
- Easy visual diffing - Spot UI changes at a glance
- Regression testing - Catch unintended changes automatically
The implementation
Memory Booster is a classic memory card game where players match pairs of cards. The implementation focuses on a clean UI, smooth card flip animations, responsive layout, and score tracking.
Learning outcomes
The project turned out to be a useful way to get hands-on experience with MobX, work through Jest snapshot testing, think through game state management, and explore animations in React.
Final thoughts
MobX was a pleasant fit for this small project. For larger applications, Redux's structure and predictability still make more sense as complexity grows.
Sometimes the best projects come from avoidance. Memory Booster is a decent example of how curiosity about a new library, combined with not wanting to do the hard thing, can lead somewhere worth going.