HHLBlog's avatar

HHLBlog

Open-source blog theme

A fast, content-first blog built with Astro 5, Svelte 5 and Tailwind CSS. Static output, Pagefind search, dark mode, and Markdown extras such as KaTeX and Mermaid.

Astro 5 Svelte 5 TypeScript Tailwind CSS

Built With

The stack this site is built on — chosen for performance and a good authoring experience

Astro 5

Modern static site generator

Tailwind CSS 3

Utility-first CSS framework

TypeScript

Type-safe JavaScript

Swup

Page transition animations

Writing on software engineering, frontend development and the occasional detour.

Open Graph and Structured Data: Making Links Look Good in Chat Boxes and Search Results

Open Graph and Structured Data: Making Links Look Good in Chat Boxes and Search Results

Break down "ugly link previews" into two separate vocabularies: Open Graph determines the card in a chat box, while JSON-LD determines what search engines understand. Explains the three silent failures of og:image, why the twitter:card attribute name is name, why Google says structured data has "no required properties," and provides a validation script that can measure the actual image dimensions yourself.

Frontend Error Monitoring in Practice: From window.onerror to Source Map Recovery

Frontend Error Monitoring in Practice: From window.onerror to Source Map Recovery

A production alert gives you just one line: app.9f2c1a.js:1:48213, and that line is two hundred functions crammed together. This article breaks error monitoring into three stages—capture, upload, and recovery—covering the five parameters of window.onerror and the pitfalls of catching resource errors, why the reason in unhandledrejection isn't always an Error, why production should use sourcemap: "hidden", and a ready-to-run script that maps a minified stack trace back to source file, line, and column.

The Many Faces of Code Review: The Truth Behind LGTM

The Many Faces of Code Review: The Truth Behind LGTM

"LGTM 👍" — a 1,400-line PR approved 40 seconds later. Those three letters can be the highest form of trust or the most expensive brush-off. We break down the jargon of the review room one by one, then look at what the research data says code review actually catches — and what it misses.

The Art of Slacking Off: An Office Survival Guide

The Art of Slacking Off: An Office Survival Guide

Mouse jigglers, boss keys, "I'm running a build"—everyone knows the slacking-off jokes, but there are actually two kinds of slacking: one relies on faking activity signals, the other on automating away the waiting. They look nearly identical on your screen; the difference is what you leave behind after you walk away.

Toolbox

Languages, frameworks and tools I reach for most often

React
Vue.js
TypeScript
JavaScript
HTML5
CSS3
Tailwind CSS
Astro
Svelte
Node.js
Git
VS Code
pnpm
Vite
Markdown

Open Source

Where this project lives

HHLBlog

This site: an Astro 5 + Svelte 5 blog theme with a fully static build, Pagefind search, dark mode and Markdown extras. The code is MIT licensed.

Astro Svelte TypeScript Tailwind CSS