The personal site of Laura Kishimoto, published to chicgeek.uk.
A single static page: plain HTML, Sass, and a few lines of JavaScript, built with Vite.
Uses Node 26 (LTS), as set in .nvmrc. Node 24.15+ also works; odd-numbered releases like 25 don't.
nvm use
npm install
npm startnpm start: Runs a local dev server that reloads as you edit.npm test: Runs the tests.npm run build: Builds the site for production to thedistfolder.npm run preview: Serves the builtdistfolder locally, to check it before deploying.npm run deploy: Tests and builds the site, then pushesdistto thegh-pagesbranch, which GitHub Pages serves.
index.html: All the page content. Each<section>is one of the expandable headings.src/css/: Styles.app.scsspulls in the rest; colours, spacing and breakpoints are invariables.scss.src/main.js: Loads the styles, lets Escape close an open section, and runs the theme toggle.src/css/dark-mode.scss: Dark theme, used when the system is dark or someone picks it with the toggle. A choice lasts for the visit (sessionStorage).public/: Copied into the site as-is.CNAMEsets the custom domain,keybase.txtis the Keybase proof.
- The two
rel="me"Mastodon links inindex.htmlverify the site on Mastodon. public/CNAMEmust stay, or GitHub Pages drops the custom domain on the next deploy.
The tests check both of these.
npm outdated
npm update
npm test && npm run buildFor a major version bump, use npm install <package>@latest, then run the tests and build.