Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Generate print-ready chess exercise sheets as PDFs, aimed at children. Paste a
list of positions in FEN
notation, configure the layout, and download a clean PDF with large diagrams and
free space for kids to write or draw their answers by hand.
ChessPrint is 100% frontend: a static web app with no backend, no database,
no accounts, and no persistence. Everything runs in your browser.Read the full README ↗Generate print-ready chess exercise sheets as PDFs, aimed at children. Paste a list of positions in FEN notation, configure the layout, and download a clean PDF with large diagrams and free space for kids to write or draw their answers by hand.
ChessPrint is 100% frontend: a static web app with no backend, no database, no accounts, and no persistence. Everything runs in your browser.
🔗 Live demo: https://chessprint.nairwolf.net
FEN ; title (optional).Lichess <id> (<rating>), with links back to each puzzle on lichess.org.
Served from a static index rebuilt monthly from the CC0 Lichess puzzle
database — no account, no API key, no rate limits.Each line of the exercise textarea:
FEN ; title (optional)
;).Example:
r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3 ; Ruy Lopez
8/8/8/8/8/5k2/6q1/7K b - - 0 1 ; Mate in one
In the spirit of honesty, ChessPrint was entirely "vibe-coded" — built by prompting an AI coding assistant rather than by hand-writing the code. I did this for two reasons:
So treat it accordingly: it works and I use it, but it wasn't crafted with the scrutiny of a hand-written production codebase. Feedback and improvements are welcome.
npm install
npm run dev # start the dev server
Then open the URL Vite prints (typically http://localhost:5173).
npm run dev # start development server
npm run build # production static build (outputs to dist/)
npm run preview # preview the production build locally
npm run typecheck # TypeScript type check (no emit)
npm run lint # ESLint
src/
├── components/
│ ├── ui/ # ExerciseForm, ExportControls, AppearanceControls, ErrorMessage, Preview, LichessImport
│ ├── diagram/ # ChessBoard (web SVG) + ChessBoardPdf (@react-pdf SVG)
│ └── pdf/ # PdfDocument, PdfPage, PdfExercise
├── lib/ # parser, validator, fen, layout, lichess (puzzle API), pieces/ (SVG path data)
├── types/ # shared types (Exercise, ParseError, ExportConfig)
└── App.tsx # root component, global state
See docs/SPEC.md and docs/ARCHITECTURE.md
for the full specification and technical decisions.
ChessPrint is licensed under CC BY-NC-SA 4.0
— see the LICENSE file.
Two chess piece sets are bundled, both obtained via the Lichess
(lichess-org/lila) repository:
See NOTICE for details.
⚠️ Because of the caliente set's NonCommercial clause, any distribution of ChessPrint that includes these graphics is restricted to non-commercial use.