American-style word grids are what most beginners mean when they search “how to make a crossword”: a black-and-white letter board, numbered across and down entries, a clue list beside the grid, and a Check Answers button that marks wrong cells without spoiling the whole puzzle. Fully automated crossword generators that invent fair interlocking banks from a giant lexicon are a research project — months of constraint solvers before the first honest theme puzzle. A browser grid-fill loop is different. A coding agent scaffolds the cell model, numbering pass, and focus movement from one prompt, and AI generation covers tile chrome and key stings. In a browser, that means WizardGenie for the fill-and-check loop, AI Image Gen for letter-tile polish and title art, and SFX Gen for tap, error, and win cues. This guide is the honest end-to-end for how to make a crossword in 2026, in a browser, in a weekend.
What how to make a crossword actually means in 2026
The query “how to make a crossword” hides three intents. Some searchers want a printable PDF worksheet for a classroom — that is desktop publishing, not a playable game. A second intent is a full crossword generator that invents grids and clues from a word bank with rotational symmetry — a serious algorithms problem. The third intent, and the one this guide targets, is a browser crossword puzzle: a fixed grid of black and white cells, hand-authored or imported clues, letter entry with keyboard and tap, across/down highlighting, Check / Reveal / Clear, a progress percent, and a win card when every white cell matches the answer key. That is a weekend build, it demos the Sorceress toolset, and it is the format most crossword puzzle tutorial and javascript crossword searchers actually want.
The presentation contract is small and strict. A title screen shows the puzzle name, theme blurb, and Start. The play screen shows the grid, the active clue, Across and Down lists, and buttons for Check Cell, Check Word, Check Puzzle, and Reveal Letter. On complete, freeze input, play a short sting, show time and mistakes, and offer Replay or Next Puzzle. The Crossword overview on Wikipedia (verified 2026-08-20) still separates American blocked grids from cryptic British-style clues cleanly — cite it when you write your itch.io blurb so players know which promise you kept. If you already shipped a guess-style word loop, the sibling guide on how to make a word game covers dictionary validation; this post owns interlocking grid fill instead.
The crossword loop in one minute (focus, type, advance, check, complete)
Five moving parts, repeated until the grid is filled correctly. First, focus — click or tap a white cell; the active across or down entry highlights, and the matching clue scrolls into view. Second, type — accept A–Z (and optionally digits for rebus variants later); uppercase the letter into the cell. Third, advance — move focus to the next white cell in the active direction; wrap within the entry, then jump to the next unfinished entry if you prefer “skip filled” UX. Fourth, check — on demand, compare player letters to the answer key for a cell, an entry, or the whole puzzle; mark wrong cells without auto-filling them. Fifth, complete — when every white cell matches, show the win card and lock edits. That is the entire grid-fill loop. Auto-generated themes, cryptics, and multiplayer race modes are polish layered after one honest mini puzzle feels fair.
Pick your engine for how to make a crossword: DOM grid, Phaser, or WizardGenie
Three good browser targets in 2026, each with a different trade-off. Vanilla JavaScript on a DOM grid is the honest default and the pick this guide recommends for a first build. Render a CSS grid of <input maxlength="1"> (or button-cells with a shared hidden input), style black cells as non-focusable blocks, and stamp small superscript numbers in the corner of entry starts. Total code footprint for a working html5 crossword is under 450 lines including numbering, focus movement, and check. No engine to install, ships as a static HTML file, deploys anywhere. The MDN KeyboardEvent docs and HTMLElement.focus() cover the input surface.
Canvas with a custom caret becomes the right pick if every letter sits on painted parchment art and you need pixel-perfect theme chrome. You trade accessibility for visuals — fine for a showcase jam, heavier once you reimplement selection, mobile soft keyboards, and screen-reader labels yourself.
Phaser 4.1.0 (verified 2026-08-20 on the official Phaser API documentation page) becomes the right pick if you want Scene lifecycle for title-play-win, tweens when a word completes, or particle pops on Check Puzzle. Phaser does not invent your numbering algorithm — you still need the same cell schema and clue lists. Use Phaser when motion polish is the product; use DOM when the product is a browser crossword maker people can type into on a phone.
WizardGenie is not a separate rendering engine — it scaffolds whichever of the three you pick from a single natural-language prompt. WizardGenie ships as both a desktop app (Windows installer with auto-update, available to Early Access supporters and above) and a no-install web build. Its coding-model lineup covers Claude Opus 4.7, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Kimi K2.5, Grok 4.2, and MiniMax M2.7 (verified 2026-08-20 in src/app/_home-v2/_data/tools.ts). For crossword, any frontier model scaffolds the grid, numbering, and check flow in one prompt. Pair a frontier planner with a budget executor like DeepSeek V4 Pro or Kimi K2.5 for the typing pass — the Dual-agent pattern lands most projects at roughly one-fifth the single-frontier cost.