Every few days, I play through puzzles that look promising based on the solution space and pick some good ones to go into the queue. I generate random grids of tiles and then run them through a brute force solver (sounds rough but the puzzles don’t feel anything). I get a lot of questions about how the puzzles are generated. I use Figma for design and Logic Pro to make the sounds. The game state is managed with Redux and your stats are persisted to localStorage. Once a day, a cron job hits a serverless API that promotes the next puzzle as “live” and prompts Next.js to update the prebaked static site with the new data. Another table stores anonymous solve stats. The daily puzzle data is queued up in a PostgreSQL table.
I built the puzzle interface and website in Next.js and React, which was a first for me and overall a great learning experience. Someone described it as Bejeweled meets Wordle. Hello, HN! Figure is a little side project I’ve been working on.