Local prototype
A game that never touches the network
A browser pet game with no backend and no network calls at all: it installs to the home screen, saves to the device, and works with the aeroplane mode on.
Local prototype
Runs locally — there is no public link to give you.

What it is
PipsKeep is about very small creatures with very large opinions. You feed them, clean up after them, send them on expeditions they take credit for, and turn a patch of meadow into a Keep.
It runs locally and is not published anywhere — there is no URL to give you. It is here because of how it is built rather than what it is.
How it is built
- Time is injected, never read
- Nothing in the game's core calls the clock. A single clock interface is passed in from the outside, and timestamps only enter as data. That one seam is why a real-time pet game has a fast, deterministic test suite: 'leave a creature alone for six hours' is a unit test rather than an overnight vigil.
- Genuinely offline
- A service worker precaches every built asset, cache-first, so after the first visit there are no runtime network requests at all. The browser then offers to install it like an app.
- Saves that survive their own updates
- State lives in IndexedDB behind a versioned schema with migrations, so a later build can read a save written by an earlier one instead of discarding it.
- Strict layers
- Pure logic knows nothing about rendering. Rendering reads state and never mutates it. The interface dispatches actions and never writes state directly. Boring, and the reason the logic is testable at all.
Our own software, not a client engagement. There are no business figures attached to it and none are claimed — the point of the link above is that you can check the work yourself.
- Runtime network requests
- None
- Saves
- IndexedDB, versioned with migrations
- Rendering
- PixiJS world, plain DOM interface
Built with
- TypeScript
- PixiJS
- Vite
- Vitest
- IndexedDB
- PWA

