2026-04-25 07:30:41 +02:00
# markusgraf.ch
2026-02-09 09:42:44 +01:00
2026-04-25 07:30:41 +02:00
Source code for [markusgraf.ch ](https://markusgraf.ch ) — personal website of Markus Graf, built with [Hugo ](https://gohugo.io/ ).
2026-02-09 09:42:44 +01:00
2026-04-25 07:30:41 +02:00
## About
2026-02-09 09:42:44 +01:00
2026-04-25 07:30:41 +02:00
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.
2026-02-09 09:42:44 +01:00
2026-04-25 07:30:41 +02:00
## Tech Stack
2026-02-09 09:42:44 +01:00
2026-04-25 07:30:41 +02:00
- **Static site generator**: [Hugo ](https://gohugo.io/ )
- **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
2026-02-09 09:42:44 +01:00
```bash
hugo server -D
```
2026-04-25 07:30:41 +02:00
The site is served at `http://localhost:1313` . Draft posts (`-D` ) are included.
2026-02-09 09:42:44 +01:00
## Deployment
2026-04-25 07:30:41 +02:00
The site is deployed via rsync. See [DEPLOYMENT.md ](DEPLOYMENT.md ) for the full guide.
```bash
hugo build
export SSH_USER = 'user'
export SSH_HOST = 'server.com'
./scripts/deploy.sh
```
## Workflow
All changes go through feature branches. See [AGENTS.md ](AGENTS.md ) for the full Git workflow and OpenSpec conventions.
```bash
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 ](https://llmstxt.org/ ), 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 ](AGENTS.md ) and [CLAUDE.md ](CLAUDE.md ) for project-specific instructions.