I relaunched my web presence with a shiny new website, both for maintainability and responsiveness. Under the hood, it features:

  • JSON, JSON Schema, python-jsonschema: To reduce maintanance overhead, most data is stored in JSON using a custom schema.
  • Jekyll allows to precisely control what CSS and HTML is generated, without getting entangled in details. Jekyll itself uses markdown, liquid and SASS, and other addons that handle HTML and CSS minification, as well as JavaScript uglification.
  • HTMLProofer ensures the final website is valid.
  • Amazon Web Services: S3 is used stored the assets and CloudFront to bring content closer to the user. CloudFormation is used to configure the two from source code, à la infrastructure as code.
  • Ansible is used to orchestrate everything above.

All-in-all, I’m pretty happy with the result:

  • Development is agile: jekyll serve automatically regenerates the whole website whenever I change a file.
  • Deployment is reproducible: I only need to invoke a single script.
  • End result is responsive, as shown by Google PageSpeed Insight.