user@gryczka.dev: ~/garden/herd-herdr
$ cat ~/garden/herd-herdr/README.md
Herd Herdr - Learn Terminal Shortcuts by Herding Sheep screenshot

Herd Herdr - Learn Terminal Shortcuts by Herding Sheep

August 30, 2026 | Patrick Gryczka

## Overview

A dependency-free browser game that turns Herdr's default terminal shortcuts into concrete farm jobs. Twelve feature lessons can be completed in any order while preserving the real Ctrl+B prefix rhythm, direct-key interactions inside copy and navigation modes, and Herdr's tab and workspace naming behavior. An on-screen keyboard gives touch users the same path through every lesson. Campaign content, input normalization, progress validation, scoring, and seeded practice generation live in a pure JavaScript module covered by Vitest; a small controller connects those rules to semantic HTML, Web Audio cues, dialogs, and localStorage; and a separate Canvas engine translates each successful command into workspace, tab, and pane state alongside fences, flock movement, weather, maps, ledgers, and character dialogue. The canvas maintains an accessible text description and live captions, motion responds to prefers-reduced-motion, and the responsive layout keeps the full exercise usable on narrow screens. The entire application deploys as six static files through a Cloudflare Worker, with no Worker script, binding, database, application server, or client framework.

## Highlights

  • -> Twelve freely selectable lessons reproduce Herdr 0.8.2 defaults, including naming prompts, prefix sequences, and direct keys inside copy and navigation modes
  • -> Pure campaign rules isolate keyboard normalization, persistence validation, scoring, and deterministic mixed-practice generation for focused Vitest coverage
  • -> Canvas scenes turn commands into visible farm state while semantic captions and ARIA descriptions preserve an equivalent accessible narrative
  • -> Physical keyboard and touch controls share one input path, with responsive layouts and prefers-reduced-motion support across the full campaign
  • -> Seeded practice avoids consecutive duplicate prompts, while validated localStorage progress keeps stars and the next open lesson entirely in the browser
  • -> Six static files deploy through Workers Static Assets with no Worker script, bindings, backend framework, database, or origin server

## Architecture

Herd Herdr architecture diagram
Browser (keyboard or touch)
    │   GET six static files
    ▼
Cloudflare Worker (Static Assets only)
    ├── index.html + styles.css ── semantic, responsive interface
    └── JavaScript ES modules
            ├── game-core.js ──── campaign, input rules, scoring, persistence
            ├── game.js ───────── DOM controller, touch parity, audio, dialogs
            └── farm-world.js ─── Canvas scenes, animation, text equivalents
                        │
                        └── browser localStorage ── lesson results, stars, wool

No Worker script, bindings, database, application server, or framework

## Tech Stack

WorkersJavaScript
$ _