Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

A curriculum vitæ built with modern web technologies

google-insights made-with-Markdown License Netlify Status

A simple and effective way to keep the CV up to date and always available as an (accessible and blazing fast) web site.

Regardless of the technology used, since long you can always find the most up-to-date version of my CV at

Blog post:


  • easy to keep updated: all the actual content is filed under content/, formatted in Markdown
  • simply reshuffle the layout editing one CSS property
  • fast load times, Google Insights gives 99% thumbs up for both mobile and desktop
  • displays decently on any modern web browser (including low-end smartphones and screen readers)
  • unadorned printable layout used by the browser Print function
  • single section views exposed as /<section name>/, e.g.


  • Hugo static site generator:
  • (as much semantic as possible) HTML5 for markup
  • CSS3 Grid, Flexbox and Media queries for the responsive layout
  • no JavaScript


Please feel free to fork this repo, just remember to clean up before publishing:

  • config.toml: base URL, name, job title and link to GitHub repo
  • content/*.md: sections, e.g.
  • content/work/*.md: job entries
  • this very file
  • static/me.jpg

Everything else should be relatively abstract and reusable as is.


  • As it is well described in the CSS-Tricks article mentioned below in the credits section, named CSS grid-template-areas are used to position the various sections on the viewport, which makes it pretty easy to update the current layout when needed. For example:

    grid-template-areas:    =>      grid-template-areas:
      "work   skills"       =>        "about  skills"
      "work   ......"       =>        "work   work"
      "about  ......";      =>        "work   work";

    Search for grid-template-areas in assets/style.scss and assets/large.scss for current implementation.

  • If you want to add more sections and/or jobs a new Markdown content file needs to be created, e.g:

    • hugo new
    • hugo new work/


  • the file name (without .md) of new added content will be used as CSS class, remember to add it somewhere in grid-template-areas in order to properly position the new section
  • the title defined in the front matter will be displayed as section/work title
  • grid order defined with grid-template-areas is not respected when printing with Firefox, the normal (weighted) markup order of content sections is used instead


You could evaluate to install Stylelint and Html5validator, then add make pre-commit as a pre-commit hook, e.g.:

echo make pre-commit > $MY_HOOK
chmod +x $MY_HOOK

I'm using Netlify to automate deployment at each new commit pushed to origin/master, see the official documentation if you want to know more about their CI/CD features.

PS Netlify promptly adds support for latest Hugo (stable) version as soon as it is released.


Many thanks to: