Koenraad

Lambda: A Hugo Theme

I built Lambda as a Hugo theme over the past few days because I wanted something that looked like Half-Life. You know, the dark green corridors and those orange hazard symbols everywhere? It’s a aesthetic I really liked since playing the games, and I thought it would work nice for a website. Turns out it does.

Lambda theme homepage showing dark green background with orange headings

Started with Vimux’s Blank theme as base, but it changed quite a lot since then. Lambda has now its own layouts and features. This website runs on it, which was good because I could actually test everything while using it instead of just building features I think I might need.

Bluesky Comments

This was the part I’m most excited about. Lambda connects directly to Bluesky’s public API. So when you write a post and share it on Bluesky, the theme automatically pulls the replies and shows them as comments on your website. Pretty cool, right? The discussion happens on Bluesky where people have their accounts already, and every reply shows up on the article page.

Bluesky comments integration showing a comment with user profile and interaction metrics

Implementation handles threaded replies, processes the rich text stuff like links and mentions, and uses DOMPurify to make sure nobody injects bad code. If someone has JavaScript disabled, they just get a link to see the discussion on Bluesky instead.

Design System

The stylesheet is built with CSS custom properties, which makes everything consistent. Colors come from the Half-Life look: dark green background, bright green for links, orange for headings and buttons. All spacing uses 8-pixel units so everything feels aligned. Best part is you can change the whole theme by just editing few variables instead of searching through all the CSS.

Post page showing breadcrumb navigation, orange heading, and code block with orange accent border

For HTML I tried to use semantic elements where it makes sense. Navigation is actual nav, articles use article tag, timestamps have time elements with datetime. Together with monospace fonts everywhere it gives this terminal vibe that I think looks good and still works properly with screen readers.

Availability

Lambda is on GitHub with MIT license. I made it for myself mostly, but structured it so other people can use it too if they like this kind of design.

Comments

Join the discussion on Bluesky

Loading comments...