CASE STUDY 08 / Personal product · Offline game

Mountain Chess — Offline Chess for Hiking

I love hiking and chess, so I built a game for solo breaks in the mountains: a local computer opponent, saved games and offline play after the first online setup.

Published · Play online
CONTEXT

Independent project

MY ROLE

Independent developer · Product, interface and game logic

TOOLS & FOCUS

JavaScript · PWA / Service Worker · Local chess engine · LocalStorage / i18n

PRODUCT SCREENS

The product, in use.

Actual product screenshots. Open an image to see it in full.

01 / THE PROBLEM

What needed to work.

I enjoy hiking as much as chess. When I stopped for a rest alone in the mountains, I wanted to play a game without depending on a signal or finding an opponent. That personal need became Mountain Chess: a small, phone-friendly game that can travel with me, remember an unfinished position and work after its resources have been cached.

CONCEPT / 08
01Cache before the hike
02Play on the device
03Save & resume
Illustrative workflow · Not a product screenshot

A summary of my responsibilities and technical approach. This workflow illustration does not reproduce the product UI.

02 / MY CONTRIBUTION

Where I took ownership.

  • Designed and built the responsive chessboard, move feedback, game controls and win/draw screens.
  • Implemented chess rules and a computer opponent that runs on the device, with three difficulty settings.
  • Added Service Worker caching, PWA installation metadata and an explicit offline-readiness check.
  • Persisted the game and preferences locally, and provided Chinese, English and German interfaces.
  • Published the static application on GitHub Pages and built a default power-saving mode for use on a phone.

03 / TECHNICAL APPROACH

Decisions in context.

Make offline readiness something I can check

A Service Worker caches the application, chess pieces and language resources. The readiness check verifies the active worker, version and cached files. Before a hike, I can check those resources and reopen the game offline to confirm it is ready.

04 / DELIVERY & REFLECTION

What I can share.

Delivery.

Published and playable on GitHub Pages, with a public source repository. The gallery shows the live English interface and a German checkmate screen from my phone. Offline use requires an initial online visit and completed caching; saved games remain in the same device and browser.

Have a similar challenge?

Let’s talk ↗