Bodoku: a place for every ghost.
Bodoku is an HTML5 ghost logic puzzle game template with full source code. Players help Bo, a little ghost, place exactly one ghost in every row, column and room of the board, with no two ghosts touching, even diagonally. The edition has 180 campaign puzzles across six castle wings, a daily challenge, Endless and Relax modes, 14 interface languages and a ready-to-host game folder with editable TypeScript source.

A logic puzzle with three rules
Study the coloured rooms, cross out impossible cells and work out where every ghost belongs. Boards run from 4×4 to 10×10. With gesture controls, tap once for an X and twice to place a ghost, or drag across cells to cross out several at once; tool selection is available in settings. Undo and redo are built in, with Hint, Lantern and Broom as local helpers. Mouse and touch are supported.
180 puzzles across six castle wings
The campaign grows more demanding wing by wing. Alongside it come a daily puzzle calendar, Endless mode and Relax mode, so players have a reason to return after the campaign. Daily boards stay playable without an online ranking.

Bo, the wardrobe and recorded voices
Bo teaches the gestures in an interactive tutorial and joins players through the campaign. Campaign rewards and daily play fund a wardrobe of accessories for Bo, and trophies mark progress. Tutorial narration is recorded in English, Brazilian Portuguese and Spanish, with English voice as the fallback for the other interface languages.
Your game, your hosting
Upload the contents of the game folder to static HTTP(S) hosting and keep all folders beside index.html. No database, PHP, account or Node.js runtime is needed to play, and normal play makes no requests to ranking, advertising or payment services. The package includes local artwork, audio and fonts, the editable source and an illustrated offline guide in English, Portuguese and Spanish.

What this edition does not include
Native apps, hosting and custom development are not included, nor are cloud saves, an online ranking, real-money purchases or an advertising SDK. The ranking calls of the website version were removed, so no server setup is needed.
Who this template is for
Site and portal owners who want a logic puzzle with a 180-puzzle campaign, freelancers and studios who need a base for a client's branded game, and developers who want to learn from readable TypeScript with a puzzle generator, a solver and regression tests.
Customise it
Edit the campaign and generator in src/core, Bo and the cosmetics in src/bo, artwork through src/art/manifest.ts, and text in the src/i18n dictionaries, keeping the interpolation placeholders intact. Voice files live in public/voice for English, Portuguese and Spanish, and captions and clip IDs must agree. Keep puzzle and cosmetic IDs unchanged so saves still work. Then rebuild with npm ci, npm test and npm run build.
Technical details at a glance
- Stack: HTML5, JavaScript and TypeScript, built with Vite.
- Files: HTML, CSS, JavaScript, JSON, WebP, PNG, MP3 and TypeScript.
- Languages: 14 interface languages, recorded voices in three, and a guide in English, Portuguese and Spanish.
- Requirements: a current browser with JavaScript, Canvas 2D, Web Audio and local storage, and static HTTP(S) hosting. Opening the game through file:// is not supported.
- Saves: the browser's local storage, with no account or cloud sync.
- Node.js 22.13+ is needed only to rebuild the source.
Licence and support in short
One purchase gives you a perpetual, non-exclusive licence to use this edition in one end product, yours or one client's. Players can access it free of charge or through advertising monetisation. You can change the code, art and audio inside your product, but you cannot resell or redistribute the template on its own. Six months of support are included (12 with the extension at checkout) and cover installing and using the files and fixing reproducible defects.













