Daniel's blog

Migrate from MkDocs to Zensical

MkDocs is now unmaintained. Learn how to migrate your documentation projects to Zensical, the modern static site generator built by the creators of Material for MkDocs.

Extending AI capabilities with Agent Skills

Agent Skills provide a modular, file-based way to extend AI agents with reusable capabilities. By using them, they reduce prompt sprawl, improve maintainability, and introduce better boundaries for your agent systems.

I revived my old iPod to escape my phone

In an age of algorithmic playlists and constant distraction, I went back to basics. This is the story of how I modded a classic iPod with modern hardware, turning a nostalgic relic into the ultimate, distraction-free music player.

A Simple Git Server

You don’t need GitHub or GitLab to host a remote Git repository. With nothing more than SSH access to a server, you can create your own remote by initializing a bare git repo

Git Restore All Unstaged Files Back to their Latest Commit

Sometimes you may want to test or experiment and revert the changes you’ve made to their last known working state, or just want to delete all the files.

Setting Up SimpleX As Your Private Messenger

Tired of ads and tracking on WhatsApp? I explore SimpleX, a privacy-focused messenger without user IDs or central logs, plus share how I set up my own SMP server behind Traefik for even more control.

Hardening Your Traefik with Security Headers

Learn how to configure robust security headers in Traefik v3 using dynamic configuration or Docker labels. Boost your app’s security posture and get that A+ rating with custom CSPs, strict transport rules, and smart defaults.

Sign your Git Commits

Protect your code and identity by signing your Git commits with SSH keys—no GPG required. In this post, I’ll show you how to configure Git to sign commits using SSH.

Global HTTPS Redirect using Traefik v3

A step-by-step guide to setting up a global HTTP to HTTPS redirect in Traefik v3. Learn how to configure entrypoints in your Traefik configuration for secure connections without relying on middleware.

Customize your RSS Feed in a Ghost Theme

Learn how to create a custom RSS feed for your blog with excerpts and a tailored layout powered by Ghost.

← Newer posts | All | Older posts →