No description
- TypeScript 43.3%
- CSS 32.2%
- Astro 21%
- JavaScript 2%
- Shell 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
mise run deploy started both at once. Each rebuilds dist/, and the checks' build wiped the files the e2e preview server was serving, failing tests at random. e2e now waits for check when both are scheduled, and still runs alone without it. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> |
||
| .config | ||
| .forgejo/workflows | ||
| e2e | ||
| public | ||
| src | ||
| test | ||
| tools | ||
| .gitignore | ||
| .worktreeinclude | ||
| astro.config.mjs | ||
| CHANGELOG.md | ||
| mise.toml | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||
portfolio
Arzaroth's page at arzaroth.com, laid out as a 42U rack. Each section is a server in the rack.
Develop
Node 22. With mise:
mise run dev # http://localhost:4321
mise run check # types, unit tests, build, em dash and release checks
mise run e2e # the built site in a desktop and a phone browser
Or with npm directly: npm run dev, npm run check, npm test, npm run build,
npm run e2e.
Where things live
src/data/servers.ts: the rack. Each server's slot, height, cable colour and port count.src/data/projects.ts: every piece of copy on the page.src/components/: the rack and one component per section.Pane.astrowraps each section.src/scripts/rack.ts: switching sections, patch cables, keyboard shortcuts.src/styles/: one stylesheet per area.responsive.cssloads last so its media queries win.test/: unit tests for the rack layout.e2e/: Playwright, desktop and phone.
Adding a section means adding a server to servers.ts and a Pane with the same id to
src/pages/index.astro. The unit tests fail if the two disagree, if two servers share a
unit, or if one sticks out of the rack.
Release and deploy
CI on Forgejo runs everything in mise run check plus the end-to-end suite. Deploying is
done by hand:
- Move the
Unreleasedentries inCHANGELOG.mdunder a new dated version, and set the same version inpackage.json. - Commit, then tag
vX.Y.Zand push the tag. mise run deployruns the checks and the end-to-end suite, builds, and rsyncsdist/to/srv/www/arzaroth.com/htdocson the host. Shared downloads live outside the web root, in/srv/www/arzaroth.com/files, served under/files/.