fingerWorkout
Vue.js · Express · Socket.io · Redis · MongoDB
Typing practice tools are boring and solo. You grind through exercises alone, with no reason to come back. There's no energy, no stakes.
What if typing practice felt like a race? Real-time, multiplayer, with live scores updating as you type. Make it competitive and people will actually practice.
A real-time multiplayer typing app with live rooms, instant score updates via WebSockets, and dynamic content pulled from the Wikipedia API so you're never typing the same thing twice. Redis handles caching, JWT handles auth.
Chose Redis over persistent storage for session data — speed mattered more than durability here. Used Socket.io instead of raw WebSockets for automatic reconnection and fallback support. Worth the extra bundle size.
Better error handling on socket disconnects — users sometimes get stuck in ghost rooms. I'd also add persistent leaderboards instead of session-only rankings, and rethink the room cleanup logic.