A small Finnish-language branching text adventure for kids, deployed at seikkailut.pomeranssi.fi.
The player moves between scenes by picking choices. Scenes, choices, items, and item-based conditions/actions are all authored in Contentful — this repo is just the rendering shell. The player's current scene and inventory are encoded in the URL, so progress survives reloads and can be shared as a link.
Tech
- Vite + React 19 + TypeScript
- react-router-dom 7 for routing (hash router when installed as a PWA, browser router otherwise)
- Contentful SDK for content
- Vitest for tests, ESLint 9 for linting
- Yarn 4 (Berry)
Running locally
yarn install
yarn start # Vite dev server at http://localhost:5173
yarn test # Vitest (jsdom)
yarn lint # ESLint
yarn build # produces ./site
Deployment
The production build in ./site is committed to the repo. The VM host checks out this repo and
serves ./site directly from disk — there's no remote build step. To ship a change:
scripts/build.sh # runs yarn install --immutable && yarn build
git add site
git commit
git push
Then pull on the VM.
