2
1 Comment

I vibe coded a crossword puzzle for indie hackers, and it was harder than I thought it'd be

Everyone's using AI to build games, thanks to Levels' flight sim.

It looked fun, so I used AI to build a game I've always wanted to have on Indie Hackers — a mini crossword puzzle.

It turns out, not every game is so easy to make with AI. Crosswords have a lot of moving parts that the AI just couldn't one-shot:

- user interface with lots of keyboard shortcuts that need to function intuitively
- algorithm that can actually generate valid crosswords, AI got this wrong over and over
- giant lists of valid words, with ratings on each, so the algorithm will know which words are too uncommon to use in a puzzle
- custom keyboard to render on mobile, bc native mobile keyboards suck for crossword puzzles (blew my mind that this was necessary)
- AI to generate clues for the finished puzzle, and to make sure clues aren't too hard or too easy, and ideally are clever and fun
- UI for you to edit clues when the AI's clues suck

I ended up having to do a lot by hand, but I got it working in the end:

👉 https://www.indiehackers.com/indie-mini/daily

My takeaway is to put a lot more thought into when vibe coding works well vs doesn't. What seems impressive to humans might not take a lot of code (a 3D flying sim on a single map), whereas what seems simple to humans might have a lot of difficult components (a daily mini crossword). If all you have is a few yours or a day, you're better off vibe coding the former rather than the latter, at least for now.

Valuable lesson to learn for sure.

posted toAvatar for product Indie Hackers
Indie Hackers
  1. 1
    What I found especially interesting was the idea that a crossword can hide so many technical challenges behind something that looks simple. When you’re just solving a finished puzzle, you rarely think about how the words are selected, how the intersections are created, or how the entire grid is validated. Recently, I tried to see how much simpler the process of creating a crossword could be without building the whole system from scratch. For me, the process looked roughly like this: 1. First, I entered a title or the main topic for the crossword. 2. Then I could either come up with my own words and clues or use AI to generate ideas and variations based on the chosen topic. 3. After that, I could choose a visual theme and add graphics that matched the content. For example, a children’s crossword could have animal illustrations, while a school crossword could include visuals related to learning. 4. Finally, the generator puts everything together into a finished crossword grid that’s ready to use. I did this using Crossword Generator https://www.supercoloring.com/uk/tool/crossword-maker. For creating a single small puzzle, it turned out to be much simpler than trying to implement all of the logic you described in the article myself. Of course, this doesn’t solve the problem of building a full daily crossword system with its own word database, generation and validation algorithms, mobile keyboard, and clue system. But I found it interesting to look at the problem from another angle: sometimes you don’t need to build all that infrastructure if your goal is simply to turn an idea into a finished puzzle quickly. And I think that connects nicely with your main point, a product can look simple to the user without being simple to build. Sometimes it’s worth looking at the same problem from a different angle and choosing the level of complexity that actually fits the task.