AI Worklog
A running record of AI-assisted work done on this blog using Claude Code. Newest first.
July 2026 — Active development
July 1, 2026
📡 Fix how brooksmarks read on the fediverse (PR #86)
- When brooksmarks round-ups are syndicated to the wider network, each shared link now shows its title and address (and any personal note) instead of an empty "embedded content" placeholder, so the posts are actually readable off-site
- Each syndicated round-up still links back to the original post here, where the links appear as full preview cards
June 2026 — Active development
June 18, 2026
🚀 Turn brooksmarks link round-ups into rich cards (PR #84)
- Shared links in brooksmarks posts now appear as polished cards with a saved preview image, the source site, a short summary, and an optional personal note — instead of a bare heading and raw URL
- Adding a link is now as simple as dropping in its URL; a new command fills in the image and summary automatically and freezes them into the post, so each card is a permanent snapshot even if the original page later changes or disappears
- Links without a preview image now show a tidy lettered tile in the site's accent colours rather than an empty grey box, so every card looks finished
June 9, 2026
🎨 Give tables in posts a real look (PR #82)
- Tables in blog posts now have a clean, bordered, lightly striped design that matches the rest of the site and looks right in both light and dark mode, instead of plain unstyled rows
- Wide tables scroll on their own on small screens rather than stretching the whole page sideways, and column alignment from the post stays intact
June 2, 2026
📡 Make the standard.site text version of posts accessible (PR #80)
- Posts shared to the AT Protocol network no longer drop their images, videos, embedded code, and interactive demos into silent gaps — each now appears as a short text description, so screen readers and other text-only readers know what's there
- When a post's richer content can't be shown in plain text, the text version now links back to the full post on the site
May 2026 — Active development
May 31, 2026
📡 Put the blog on the Bluesky / AT Protocol network (PR #78)
- Every published post now appears as a shareable record on the AT Protocol network, so apps following the [standard.site](https://standard.site) spec can discover and surface my writing
- The blog and all its posts stay in sync on the network automatically whenever the site is published
May 24, 2026
🔒 Stopped sending dev traffic to Google Analytics (PR #76)
- Local dev sessions and preview builds no longer ping Google Analytics, so stats only reflect real visitors to the live site
May 24, 2026
🚀 Embed Bluesky posts in blog posts (PR #75)
- Bluesky posts can now be embedded alongside tweets and gists
- Embed follows the site's light/dark theme
May 22, 2026
📡 Connected Google Analytics (PR #72)
- Setup Google Analytics
May 21, 2026
🚀 Add About page (PR #71)
- Added
/about— personal intro and career highlight cards - Added About nav link to desktop sidebar and mobile drawer
May 21, 2026
🚀 AI Worklog page (PR #70)
- Added
/ai-worklog— a timeline of AI-assisted work on the blog - Added
update-ai-worklogskill to auto-update the log on every PR
May 21, 2026
📋 This Page
- Compiled the full project timeline from git history and session worklogs
- Added AI Worklog as a standalone page with sidebar nav link (PR #70)
May 21, 2026
🔒 Security Fixes (PR #69)
- Fixed npm install warnings and security vulnerabilities
May 20–21, 2026
📡 RSS Feed (PR #68)
- Added
/rss.xmlendpoint with RSS 2.0 feed via@astrojs/rss - Stripped MDX imports and relative images from feed content (fence-aware)
- Added auto-discovery
in layout
May 20, 2026
🗂️ Image Co-location (PRs #65, #66)
- Refactored posts to folder format (
posts/post-name/index.mdx+ co-located images) - Updated
new-postscript to generate folder-format posts - Cleaned up orphaned legacy image folders
May 19–20, 2026
✍️ Component Polish + New Post
- Extracted
SocialLinkscomponent, sidebar color token sweep - Published "Migrating to Astro with AI" blog post (PR #62)
May 17–18, 2026
📱 Mobile Nav + Tailwind v4 Migration (PRs #58, #64)
- Added sticky top bar + slide-in drawer for mobile navigation
- Migrated every component from scoped styles → Tailwind v4
- Extracted
ButtonLinkcomponent, standardized font scale and color tokens
May 16, 2026
🖼️ Visual Design Refresh (PR #57)
- Dark theme, slimmer sidebar, table of contents, reading time indicator
- Switched to Lexend font, tags section in sidebar, layout shift fixes
May 13, 2026
🗓️ Maintenance
- Investigated whether Google Ads were still active on the blog
- Installed the
addyosmani/agent-skillsplugin marketplace in the project
April 2026 — Gatsby → Astro migration
April 22–25, 2026
🔧 Migration Cleanup + Tooling
- Continued debugging the Gatsby → Astro migration on staging; investigated font mismatches between staging and master, explored CDN loading for cache hits
- Yarn vs npm audit — reviewed mixed package manager situation, validated against Node 22 and Netlify build config
new-postscript — documented in the README, created branch + PR
April 19–22, 2026
🎨 Blog Redesign
- Collaborated on a new visual direction: clean, simple, modern
- Produced and approved a Design Spec document (dated Apr 19)
- Issue #36 — Began implementing the redesign from the spec
- Fixed missing favicon (was present on production but missing in preview)
- Navigation consistency fix — Next/Prev buttons aligned visually and directionally
April 17–18, 2026
🔨 Continued Feature Work
- Multiple short sessions iterating on blog features post-migration
- Continued embed polish, layout fixes, and style refinements
April 13–15, 2026
🚀 Gatsby → Astro Migration
Full rewrite across ~10 PRs in ~3 days:
April 13 — Astro + TypeScript setup, content collections, layout, global styles, all pages and routes
April 14 — React islands for PostBody + ThemeChanger, remove all Gatsby artifacts, ESLint, Netlify config; debugged TweetEmbed.tsx TypeScript errors (Issue #18), previewed Expo embed handling (Issue #16)
April 15 — Fix SSR embed issues: Expo Snack, Gist iframe with ResizeObserver auto-sizing, Tweet embed shim; implemented GitHub Gist embeds (Issue #17)