personal-site
activeRust + 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.
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.yamldrives 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 viainclude_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-bootstrapskill atvps-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.