Problem
I wanted a personal site that is plain, fast, cheap to keep running, and that I fully own: text files I can read in twenty years, no database, no accounts, no trackers.
Solution
A static site built with Hugo, hosted on GitLab Pages.
The pieces
- Content - every post is a plain Markdown file with a short header (title, date, description). The files live in folders that become the sections of the site: Notebooks, Weblog, Guides, Questions and Reading.
- Templates - no ready-made theme. A handful of small HTML templates (
layouts/) and one stylesheet (static/style.css) control everything. - Hosting - the source sits in a private GitLab repository. Every push to the
mainbranch triggers a GitLab CI job that runshugoand publishes the result. The site is live about a minute after a push.
Design
- Colours - the Gruvbox palette, in a light and a dark version. Each kind of element has one colour: titles orange, section headings aqua, sub-headings green, links blue, dates yellow, quotations purple.
- Type - Source Serif 4 for reading text, the system font for small labels. The font is served from this site itself, trimmed to the characters the site actually uses (about 80 KB instead of about 2 MB).
- Light / dark - follows your system setting. If you press the toggle, the choice is remembered in your own browser (local storage, not a cookie) and never leaves it.
What it does not have
- No cookies, no analytics, no comments, no ads.
- No requests to any other server: fonts, styles and feeds all come from this site.
Dates
- The publish date is written in each post’s header.
- The “Updated” date is automatic: at build time Hugo reads the git history and shows the date of the last change to that file. Nothing to maintain by hand.
Following the site
Every section has an RSS feed, and there is one feed for everything: feed.xml. Paste the site address into any feed reader and it will find them. The Archive lists every post on one page.
Adding a post
Create a Markdown file in the right section folder, with a header like:
--- title: "Title of the post" date: 2026-09-18 description: "One line that appears in lists and feeds." ---Commit and push. That is all.
Help
Parts of the templates and styling were built with help from Claude, an AI assistant.
References
- Hugo documentation
- GitLab Pages
- Gruvbox colour scheme
- Source Serif 4 - typeface by Frank Grießhammer for Adobe, SIL Open Font License; files taken from the Google Fonts repository and trimmed with fontTools