I built a browser game called Lexadec.
The concept is similar to Boggle, but instead of a countdown timer, you have a strict limit of 10 moves to get the highest score possible. I wanted to shift the focus from speed to path optimisation.
The Tech Stack: • React + TypeScript + Vite • Supabase (Backend) • Tailwind + shadcn/ui
One specific challenge I hit:
I wanted the final screen to show players the longest possible word they could have found on that specific grid.
Initially, I wrote a DFS solver that ran directly in the browser. It worked fine on my laptop, but when I started testing on phones, the recursive search was freezing the UI thread and draining battery on older devices.
I ended up moving that logic to the server side. Now, a daily cron runs to solve it once to find the max-score word, and just serves that result to the client when the game ends. I’d love any feedback on the touch dragging mechanics—getting the sensitivity right for diagonal selects was trickier than I expected. Thanks!