static

My tools

Timer & Tracker

Farnsworth CW Trainer

Life in weeks

Learn Foreign Language — in-progress language practice workspace.

Lucky Number Lookup — Enter a number (digits only); it is reduced modulo 81 (1–81) and looked up in the fortune table.

Development

nvm use 25
pnpm -r install
pnpm build
pnpm dev:all

This repo is a pnpm workspace. To work on any app:

  1. Enable pnpm via Corepack once: corepack enable pnpm
  2. Use Node 25+ (run nvm use to respect .nvmrc, Vite 7 requires 20.19+)
  3. Install everything from the repo root: pnpm install
  4. Dev servers:
    • Single app: pnpm dev:farnsworth, pnpm dev:sporttimer, pnpm dev:life, pnpm dev:language, or pnpm dev:lookup (Lucky Number Lookup)
    • All apps together: pnpm dev:all
  5. Build every app at once: pnpm run -r build (or ./build_all.sh)

Shared library (packages/shared)

Testing Production Builds Locally

Source code: https://github.com/neilhan/static To test a production build locally (avoiding CORS issues), navigate to the app directory and run:

npx serve dist

This will serve the built files over HTTP at http://localhost:3000 (or another port if 3000 is busy).


Last updated: 2026-03-02 09:57 PT