A word on this blog.
A word on this blog.
Witam 👋 This is my personal corner of the internet — a collection of technical notes, experiments, projects, and things I don’t want to rediscover twice. It started as a pile of private notes. Over time, I moved them to Markdown so they could be searchable, version-controlled, and, when useful, published here. The site is built with Hugo, the HB Framework, and deployed with GitHub Pages.
📻 Building My Self-Hosted RSS Reader
🔔 Customize RSS Feed in Hugo
✨ How to Write a Hugo Shortcode
💫 Podman as a service
💫 Podman as a service
Run rootless Podman containers as persistent systemd services, without introducing Kubernetes.
🎺 How to Create a Widget for Hugo.
🔭 My New Blog
🔭 My New Blog
Sometimes in life, you need to upgrade. This article walks through the new version of my blog and the discoveries that came with it.
Projects
Projects
Just a short list of personnal projects, I am currently working on.
🐹 Golang
🐹 Golang
Installation Install Go: 1GO_VERSION="1.21.0" 2 3wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz 4sudo rm -rf /usr/local/go 5sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 6 7export PATH="/usr/local/go/bin:$PATH" 8 9go version To keep Go available after reboot: 1echo 'export PATH="/usr/local/go/bin:$PATH"' >> ~/.bashrc 2source ~/.bashrc Create a project 1mkdir myapp 2cd myapp 3 4go mod init myapp A go.mod file is created: 1myapp/ 2└── go.mod It describes the Go module and its dependencies. Hello World Create main.go: 1package main 2 3import "fmt" 4 5func main() { 6 fmt.Println("Hello World") 7} 1go run . 2go build This creates a binary: ./myapp
🐶 GoDog
🐶 GoDog
What is GoDog GoDog is the Cucumber implementation for Go: Behaviour-Driven Development (BDD). You write scenarios in Gherkin (.feature files), then implement the steps in Go. go test runs the scenarios as normal tests. Install 1go get github.com/cucumber/godog/cmd/godog@latest In practice it is a test dependency added to your go.mod. Example 1. Feature file features/calculator.feature: 1Feature: Calculator 2 3 Scenario: add two numbers 4 Given I have a calculator 5 When I add 3 and 5 6 Then the result should be 8 2. Step definitions main_test.go:
⚡ Hugo
⚡ Hugo
What is Hugo Hugo is a fast static site generator, written in Go. It turns Markdown + templates + config into a static website. Install Use the extended build if you process SCSS (this theme does): 1# binary 2curl -L https://github.com/gohugoio/hugo/releases/download/v0.154.3/hugo_extended_0.154.3_linux-amd64.tar.gz | tar -xz 3sudo mv hugo /usr/local/bin/hugo 4 5# or snap 6sudo snap install hugo You also need Dart Sass and Node/npm for SCSS + PostCSS. New site 1hugo new site myblog 2cd myblog Content 1hugo new posts/first-post.md # draft: true by default Serve / Build 1hugo server -D # dev server, include drafts 2hugo # build into public/ 3hugo --gc # build + garbage-collect cache 4hugo --minify -e production # production build Layout 1content/ source markdown 2layouts/ templates (override the theme) 3static/ files copied as-is (images, favicons) 4data/ site data (.yaml/.json/.toml) 5config/ configuration (hugo.yaml, params, menus) 6public/ generated site (gitignored) Front matter 1--- 2title: "First Post" 3date: 2026-01-01T00:00:00+02:00 4draft: true 5--- 6 7Content. Templates & partials layouts/_default/single.html, list.html, baseof.html Override anything from the theme by mirroring the path in layouts/. Partials: {{ partial "name" . }} Useful functions 1{{ .Title }} {{ .Content }} {{ .Params.custom }} 2{{ range ... }} {{ if ... }} {{ with ... }} 3{{ resources.Get "x" | minify | fingerprint }} Modules 1hugo mod get -u ./... # update modules 2hugo mod tidy 3hugo mod graph # list the module graph Key notes _index.md = section page; index.md = leaf bundle page. draft: true pages only appear with hugo server -D. The ./-relative image paths resolve against static/, not the content bundle.