Crossword Game

/ Overview
A browser-based daily crossword for a seniors audience — built in Next.js with large, forgiving controls and nothing to install.
The brief
The club wanted a reason for members to come back daily, and it had to run in a browser — this audience is not going to install an app. That single constraint shaped the whole build.
What I built
The full interactive front end in Next.js and TypeScript: grid rendering, clue navigation, keyboard and tap entry, answer validation, and progress that survives a refresh or a closed tab.
Most of the care went into input handling. For an older audience the common failure isn't a missing feature — it's a control that's technically fine and practically unusable. Cell targets, focus states, and the jump between clues were sized and tested for people who aren't precise with a cursor.
Outcome
Live as a recurring engagement feature rather than a one-off campaign — the club owns the format instead of embedding someone else's widget.