wanessalabs standalone production

Puzzle Book Makers

Four browser puzzle book generators on one print engine. Pick a type, a count and a seed, preview every page, export a print-ready KDP PDF.

ReactTypeScriptjsPDFpptxgenjsCloudflare Pages
Puzzle Book Makers screenshot 1

Four free tools for generating and exporting puzzle books, all running in the browser. Choose a puzzle type, set a count, pick a seed, preview every page as it will print, then export a KDP-ready PDF with cover, intro, puzzles and a full answer key. No account. No server. The engine runs on your machine.

The Problem

KDP is an obvious revenue channel for puzzle books. The toolchain is the problem. Dedicated generation software costs money and exports books that look like everyone else’s. Custom layout in InDesign is slow. Paying someone to produce two hundred verified puzzles per book does not repeat.

The first version solved this for Sudoku alone, as a standalone page. Adding a second puzzle type would have meant a second copy of the page arithmetic, the theme system and the PDF writer. So the engine was pulled out and the makers were rebuilt on top of it.

The Four Makers

MakerWhat it prints
SudokuNine by nine, two puzzles a page, six answers a page. Easy, medium and hard, mixed to taste.
LinkedSixteen words hiding four groups of four. Drawn from a hand-written bank, so a book never repeats a puzzle.
AnagramSeven letters with one in the middle, every word using the centre. The same puzzles the daily game uses.
Mini CrosswordFive by five, clues beneath, filled grids in the back.

Mini Crossword is the honest exception. Its generator and renderer are finished, but a five by five needs every row and every column to be a real word, and that takes a word bank of a few thousand entries with a clue written for each. The bank is being authored by hand. Until it is deep enough to fill a grid, the maker shows exactly how far along it is and refuses to generate, rather than handing over an empty book.

One Engine, Three Renderers

Every maker describes a page as a list of drawing operations. Nothing about layout knows what a PDF is. Three renderers consume that same list:

A second layout implementation for the preview would have drifted from the PDF the first time either was touched, and the drift would have surfaced as a complaint rather than a failing test.

Configuration

SettingOptions
Puzzle typeSudoku, Linked, Anagram, Mini Crossword
DifficultyPer maker. Sudoku and Anagram mix easy, medium and hard by weight
Puzzle countStepper and presets, capped at 200 printed pages
Page sizeKDP 6×9, US Letter, A4
ThemeRisograph, Parchment, Minimal
Book title, subtitle, websitePrinted on the cover, title page and back matter
Book seedManual or randomised. The same seed and settings rebuild the same book

Reproducibility

Every maker draws from one seeded stream, and each puzzle’s seed is derived from the book’s seed by label rather than by consuming the stream in order. The practical consequence is worth stating: if puzzle nine takes a different path, it cannot change what puzzle ten produces. A seed reproduces a book exactly, not approximately.

Sudoku verifies a single solution before a puzzle ships. No ambiguous grid goes into a book.

Stack

ToolRole
React + TypeScriptThe makers, inside the Wanessa Labs Games hub
jsPDFClient-side PDF, bundled rather than fetched, so a book exports offline
pptxgenjsThe Canva front matter export, loaded only when asked for
Cloudflare PagesStatic hosting

KDP print specs are baked into the renderer: 6×9 inches, 0.125 inch bleed, 0.75 to 0.875 inch safe margins.

The original standalone Sudoku maker is still published and still the only way to make four by four and six by six kid packs, plus the growing pack that steps a child up through all three sizes.

Development timeline

2 logged updates over 105 days, 15 May 2026 to 27 Aug 2026.

  1. Four makers on one shared print engine, live in productionfeature

    The games repo is Git-connected, so that merge was the deploy. Verified live on games.wanessalabs.com/creator by content.

  2. Project scaffoldedfeature

    Created from user's project mapping pass. Initial PRD seeded from one-paragraph description.

Written from this project's decision log as work happened, not afterwards. See every project →