Rafael Martins

About the website

This page describes the website technical information, for those who are curious about infrastructure details.

Web hosting

This website currently runs on a dedicated server from Hetzner (EX42-NVMe from Finland datacenter). I got it during the Finland datacenter opening sale.

The operating system is Centos 7, and the services are managed using Docker and Docker Compose.

This server runs all my websites and several personal productivity tools.

Domain name

The rgm.io domain name was registered in 2013 via Gandi.net. It is composed by the initials of my name and the .io TLD.

I decided to register this short domain name mostly to use its subdomains for my project websites, to avoid registering a dedicated domain for each project. Also, it was useful during the pre-Let's Encrypt era, because I could buy a single wildcard SSL certificate for all websites.


DNS for rgm.io is managed by ClouDNS. I have been using their services for several years, and their API makes it very easy to use Let's Encript DNS-based validation.

Source code hosting

The source code of this website is hosted by GitHub, and is open source: https://github.com/rafaelmartins/rgm.io/

Frontend technologies

The frontend is based on Primer CSS, the CSS design system that powers GitHub.

A custom Primer CSS build is generated. It includes only the bundles used by the website. It is built using sassc. The SASS source files were extracted directly from upstream repository without any changes, and are available in the assets/primer/ folder.

The website uses the highlight.js script to highlight code blocks. I downloaded a custom build from the official website, including only the programming languages that I usually write code on. The style is github. It also uses the anchorjs script to generate anchor links for the headers automatically, and a custom script to resize embedded content automatically, according to the browser's viewport size.

The Javascript is unobtrusive, except for third party embedded content. Navigating without using Javascript is suboptimal, but viable.

Disclaimer: I am NOT a frontend developer. :^)

Backend technologies

This is a static website. The served files are generated by blogc using a custom Makefile. There's no magic here: the Makefile contains rules to build the HTML pages and Atom feeds using blogc, rules to build the CSS stylesheets using sassc, and rules to copy the static assets.

The web server is NGINX.

Rafael Martins. Oct 31, 2020.