Static personal site for grimgrimberg.github.io.
- Root-served static HTML/CSS/JS for GitHub Pages.
- Primary maintained pages:
index.htmlphoto.htmlthank-you.htmlcv.html
- Legacy compatibility pages:
about.htmlprojects.htmlvision.html
This repo is not React and is not driven by Jekyll templates in its current maintained flow.
devis the working/source branch convention for this repo.- Feature work should branch from
dev. - The GitHub Pages publish setting is a repository setting, so this repo does not assume a specific deploy branch unless that is verified in GitHub.
index.htmlandphoto.htmlare the main live surfaces.- Shared shell behavior lives in
assets/js/site-shell.js. - Page-specific behavior lives in:
assets/js/index-page.jsassets/js/photo-page.js
- Legacy standalone pages still use
assets/js/scripts.js.
assets/css/styles.cssis the Tailwind v4 source-of-truth stylesheet.npm run buildproduces the committedassets/css/output.cssused by the maintained pages and legacy compatibility pages.- Primary pages no longer depend on the Tailwind CDN runtime.
- Install dependencies:
npm install- Start a local static server from the repo root:
npm run serve- Open:
npm run lint
npm test
npm run test:headed
npm run build
npm run watch
npm run servenpm run lintruns the repo-specific static and runtime hygiene checks.npm testruns the maintained Playwright smoke suite.- Use
npm run lintandnpm test -- --reporter=lineas the default acceptance gates before pushing portfolio changes. npm run buildrebuilds the committed Tailwind CSS used by the site pages.npm run servelaunches the same local static server shape the smoke suite uses.
assets/
css/
styles.css
output.css
js/
index-page.js
photo-page.js
site-shell.js
scripts.js
scripts/
lint-site.mjs
optimize-images.ps1
tests/
README.md
fixtures/
mobile-nav-test.html
site-hygiene.spec.js
smoke.spec.js
docs/
site/
CONTEXT.md
DESIGN.md
PRODUCT.md
SETUP_INSTRUCTIONS.md
archive/
AUDIT_SITE_PASS_1.md
CHANGELOG_SITE_PASS_1.md
REFACTORING_SUMMARY.md
index.html
photo.html
thank-you.html
cv.html
.nojekyllis present so GitHub Pages serves the repo as plain static files.- Legacy pages are intentionally kept reachable, but they are not the main maintained user journey.
- Root markdown is intentionally sparse. Product/design context lives under
docs/site/, while older audit notes live underdocs/archive/.