shiva-wm
this site: a tiling-WM terminal UI with an in-browser shell
- DOM-free command engine
- pipes · filters · tab completion
- statically prerendered
- 4 skins + 1 hidden
The site you're on: a personal homepage built as a tiling-window-manager terminal UI, with workspace tabs, an interactive in-browser shell, a Ctrl-K command palette, switchable CRT themes, and an MDX blog.
The shell is a small command engine. Parsing, dispatch, and tab completion live in a plain TypeScript module that never touches the DOM or imports React; shell history is passed in from the component, so the engine runs without a browser. Commands read the same profile and project data as the pages, and text output pipes through filters such as grep, sort, uniq, wc, head, tail, cut, and sed.
Around it sit inline toys and playable overlays (snake, tetris, minesweeper, a typing test, vim, a text adventure, and a JS repl scoped to the site's data), each overlay focus-trapped. There are four public color skins plus a hidden one, and reduced-motion preferences are respected.
Built with Next.js 16 (App Router), React 19, TypeScript, and Tailwind CSS v4. Pages are prerendered and served by a small standalone Node server, blog posts are highlighted with Shiki at build time, and the repo includes a Docker + Caddy setup for self-hosting with automatic HTTPS.