Reviewed-on: https://codeberg.org/gurix/markusgraf_ch/pulls/6
markusgraf.ch
Source code for markusgraf.ch — personal website of Markus Graf, built with Hugo.
About
Markus Graf is a developer, BSc Psychology graduate, and consultant based in Switzerland. The site serves as his personal blog and digital CV. Topics include AI agents, ADHD & productivity, digital tools, and tech experiments.
Tech Stack
- Static site generator: Hugo
- Languages: German (default) & English
- Deployment: rsync over SSH via
scripts/deploy.sh - Hosted at: markusgraf.ch
Site Structure
content/
├── blog/ # Blog posts (bilingual, DE + EN)
├── cv.de.md # Lebenslauf (DE)
└── cv.en.md # Curriculum Vitae (EN)
Blog posts are organized as page bundles (one folder per post). Each post has a translationKey to link its language variants.
Local Development
hugo server -D
The site is served at http://localhost:1313. Draft posts (-D) are included.
Deployment
The site is deployed via rsync. See DEPLOYMENT.md for the full guide.
hugo build
export SSH_USER='user'
export SSH_HOST='server.com'
./scripts/deploy.sh
Workflow
All changes go through feature branches. See AGENTS.md for the full Git workflow and OpenSpec conventions.
git checkout -b feature/my-change
# make changes
git commit -m "feat: description"
# open pull request
Commit message conventions: feat:, fix:, docs:, refactor:, test:
LLM Friendliness
The site includes a static/llms.txt file following the llms.txt specification, listing key pages for LLM discovery. When adding content, keep static/llms.txt up to date.
AI assistants working in this project should read AGENTS.md and CLAUDE.md for project-specific instructions.