Personal website built with Hugo and the aboutme-v2-theme. No Node.js required — SCSS is compiled natively by Hugo Pipes.
- Hugo Extended v0.163.0 or higher
- Go 1.23+ (for module resolution)
git clone https://github.com/lbenicio/lbenicio.github.io.git
cd lbenicio.github.io
hugo serverThat's it. No npm install, no node_modules. Hugo handles everything — SCSS compilation, CSS minification, and asset fingerprinting.
.
├── content/ # All page content (front matter driven)
│ ├── _index.md # Homepage (heading, subtitle, avatar, socials)
│ ├── about/index.md # About page (name, role, skills, certifications)
│ ├── contact/index.md # Contact page (postUrl, email, pgpKey)
│ ├── timeline/index.md # Timeline milestones
│ ├── publications/ # Academic publications
│ └── reading/ # Reading list
├── static/
│ └── static/ # Static assets → /static/ URL prefix
│ ├── images/ # Profile pictures, institution logos
│ ├── files/ # PDFs, sheets
│ └── pgp/ # PGP public key
├── hugo.toml # Site configuration
├── go.mod # Hugo module dependencies
└── .github/workflows/ # CI/CD (build → obfuscate → deploy)
All page content is sourced from front matter, not site config. The hugo.toml only holds global defaults:
[params]
appMode = "ABOUT_ONLY" # Render mode
siteUrl = "https://lbenicio.dev"
githubHandler = "lbenicio" # Social defaults (overridable per page)
linkedinHandler = "leonardo-benicio"
twitterHandler = "lbenicio_"Homepage (content/_index.md):
heading: "About Leonardo Benicio"
subtitle: "Personal tagline"
avatar: "static/images/avatar/profile-picture.png"
github: "lbenicio"About (content/about/index.md):
name: "Leonardo Benicio"
role: "Computer Scientist"
skills: ["Algorithms", "Distributed Systems", ...]
certifications:
- id: aws-cloud-practitioner
name: AWS Certified Cloud Practitioner
...Contact (content/contact/index.md):
email: "hi@lbenicio.dev"
postUrl: "https://formbold.com/s/..."
pgpKey: "/static/pgp/public.asc"- Class/ID obfuscation: All HTML, CSS, and JS identifiers are deterministically obfuscated post-build.
- PGP encryption: Contact form supports OpenPGP encryption via
openpgp.js. - No external scripts: Only self-hosted assets (except Umami analytics).
Pushes to main trigger the deploy workflow:
- Install Go + Hugo dependencies
- Build with Hugo (
--minify --environment production) - Obfuscate class/id/data-* names
- Deploy to GitHub Pages
Manual build:
hugo --minify --environment productionZero Node.js dependencies. The only requirement is Hugo Extended (for SCSS compilation via LibSass).
require github.com/lbenicio/aboutme-v2-theme v0.3.0
- Email: hi@lbenicio.dev
- GitHub: @lbenicio
- LinkedIn: leonardo-benicio
Built with Hugo + aboutme-v2-theme • © 2026 Leonardo Benicio