nonogram_revisited

Nonogram Revisited

A modern TypeScript Nonogram (Picross / Griddlers) solver, generator, trainer, and analyzer inspired by classic open-source Java tools (FreeNono and NonogramSolver). It combines a 100% deterministic human-step solving engine with a responsive Progressive Web App, a 4-stage Socratic AI Coach, and a “Why not fill / Why not cross out?” Contradiction Prover. Licensed GPL-3.0-or-later.

Repository layout

pnpm workspace, Node >= 20 (CI and the site build use Node 22), TypeScript, ESM throughout.

Common commands

Run from the repository root:

pnpm install
pnpm typecheck                                    # tsc across packages; node --check for the website
pnpm test                                         # every package
pnpm --filter @nonogram/core test
pnpm --filter @nonogram/app test
pnpm --filter @nonogram/app dev                   # dev server
pnpm --filter @nonogram/app build                 # tsc + vite build -> packages/app/dist
pnpm --filter @nonogram/website build             # site, including the app -> packages/website/dist
pnpm --filter @nonogram/website test              # builds the site, then asserts on the output

SITE_URL=https://nonogramrevisited.com/ is set in CI for the website build (it writes sitemap.xml and robots.txt).

Before finishing a change, run pnpm typecheck and pnpm test, and the affected package’s build.

Architecture notes

Coding conventions

Git and pull requests