Today.
Today.
Small notes, daily learnings, and things I found interesting.
First day of skullthoughts
Got the blog running. Markdown works, dark mode works, the whole thing builds clean. Spent the afternoon tweaking the theme — dim gray dark mode with oatmeal light. The blurred grid background turned out nice....
Astro 6 content collections are broken
Spent 2 hours debugging why content collections would not work in Astro 6.1.8. Turns out it's a known issue — the schema validation just silently fails. Solution: hardcoded posts in `posts.ts` as raw markdown strings. Render with `marked` package. Not ideal but it works and keeps things simple....
Docker multi-stage builds are satisfying
Shrunk the image from 1.2GB to 92MB with a two-stage build. Stage 1: node:22-alpine for the Astro build. Stage 2: nginx:alpine to serve static files. The deploy script does blue-green switching between two containers behind Traefik. Zero downtime deploys for a static blog — overkill but fun to build....
Choosing fonts is harder than picking a stack
Lora for body, Playfair Display for headings. Serif all the way. The italic variant of Lora is beautiful for descriptions and pull quotes. Google Fonts makes it easy but the preconnect hints matter — saved 200ms on font load by adding them....