← all projects

personal-site

active

Rust + Leptos personal site — the CV, project portfolio, and blog you're reading right now. Content baked at compile time; deployed to a Hetzner VPS via Coolify.

2026-05 – Present

  • Rust
  • Leptos
  • cargo-leptos
  • cargo-chef
  • axum
  • SCSS
  • Coolify
  • Hetzner

The site itself is the artifact — you're looking at it. Built as a vehicle to learn Rust fullstack on a low-stakes real project.

What's interesting

  • Single source of truth. content/cv.yaml drives the web view (/cv), a markdown export (cv.md), a LaTeX export feeding the Awesome-CV PDF build (cv.tex), and a LinkedIn copy-paste artifact (linkedin.md) — all from one YAML, one schema crate, four thin renderers. No drift between surfaces.
  • Content baked at compile time. Posts and projects embedded via include_dir!; cv.yaml via include_str!. Both SSR and WASM hydrate bundles see identical bytes. No runtime FS, no CMS.
  • Engineering-excellence build pipeline. cargo-chef + BuildKit cache mounts bring code-only deploys to ~60-90s; cargo-binstall sidesteps the Rust 1.95 / rhai compile incompat that breaks cargo-leptos from-source installs.
  • Bootstrapped by a Claude skill. The repo's skeleton (Dockerfile, compose with Traefik labels, /healthz routing, gitignores, CI skeleton) was generated by the workload-bootstrap skill at vps-playground/platform-conventions — the first rust-leptos sibling on that platform.

What's not here yet

Syntax highlighting for code blocks; RSS feed; per-project image hosting; a real domain to swap in for the nip.io hex hostname.