Personal engineering blog and knowledge library: dominicusin.github.io. The public site is built with Hugo and the Blowfish theme, with Russian as its primary language.
The repository has two clear parts:
- Website: Hugo content, templates, theme, and generated site data. This is the only part published to GitHub Pages.
- Engineering archive:
src/,contracts/dao/, and their tests. These are retained experiments; they are not shipped with the site.
The architecture boundary and its rationale are recorded in
docs/adr/0002-two-plane-architecture.md.
The current implementation overview is in docs/ARCHITECTURE.md.
Requirements: Node.js 24, Hugo Extended 0.164.0, and the Blowfish theme submodule.
git submodule update --init themes/blowfish
npm ci --prefix scripts
node scripts/sync-github.cjs
node scripts/build-knowledge-graph.cjs
node scripts/build-ontology-feed.cjs
node scripts/build-crosslinks.cjs
node scripts/build-awesome.cjs
hugo server -DOpen the local URL printed by Hugo. To create the production output in public/:
hugo --gc --minify --baseURL "https://dominicusin.github.io/"The deploy workflow runs the data generators and Hugo build in this order, then publishes the public/ artifact to GitHub Pages. Pushes to main and the scheduled repository sync both use this workflow. The quality.yml workflow checks pull requests and never deploys.
| Area | Source of truth |
|---|---|
| Posts and pages | content/ |
| Site settings and navigation | config/_default/ |
| Theme overrides | layouts/, assets/, static/, i18n/ |
| Generated site data | data/, static/data/, generated by scripts/ |
| Content rules | schema/post-metadata.schema.json, docs/CONTENT_CONTRACT.md |
| Publishing and operations | docs/PUBLISHING.md, docs/OPERATIONS.md |
| Frozen engineering archive | src/, contracts/dao/, tests/ |
New articles belong in content/blog/. Keep front matter aligned with the content schema; CI checks new articles before they can be published. Use Hugo aliases when changing a page URL so existing links continue to work.
The required pull request gate is Quality CI. It installs the root Node dependencies, builds Hugo, checks content and internal links, and runs the repository lint step. The Playwright workflow runs separately. The R&D test workflow is currently disabled in GitHub Actions because its DAO test job fails on main; its suites are not part of the required pull request gate.
Useful local commands:
npm ci
npm run lint
npm test
npx hardhat testThese commands are available for local work on the engineering archive. The site build uses the nested tooling dependencies installed with npm ci --prefix scripts.
MIT. See LICENSE.