This site · Spec-driven · CI/CD
swaks.org.
The site you are reading, and a showcase of how I work: spec first, small tested steps, CI before anything goes live.

Spec-driven
- A written spec (spec.md in the repo) comes before the code: structure, languages, design, constraints and how to add a project.
- Each change is a small step with a clear goal, checked before the next one.
- Claude Code writes much of the code; I set the stack and the architecture, and I review what is kept, changed or dropped.
- Every change goes through GitHub, so the whole history is public.
CI / CD
- On every push, GitHub Actions runs the build and fails if the generated pages are not up to date.
- If everything passes, the site is deployed to OVH automatically: no manual upload.
- The build versions CSS and JS files for long-term caching, and computes the script hashes of the Content-Security-Policy.
Accessibility
- Text contrast of at least 4.5:1 in both themes, checked colour by colour.
- Fully usable with the keyboard: sections, project cards, command palette (Ctrl+K), visible focus.
- Labels for screen readers, real buttons and links, and every animation turned off when the system asks for less motion.
Under the hood
- Plain HTML, CSS and JavaScript: no framework, nothing to install.
- Bilingual EN / FR with hreflang: a dependency-free Python script generates the French pages, the project pages and the sitemap.
- GitHub Actions checks that the generated pages are up to date, then deploys every push to OVH.
- Content-Security-Policy, HSTS, self-hosted fonts, and every animation turned off when the system asks for less motion.