-
v2.6.14
- + Skills: Added a searchable publishing section for skill-file links, descriptions, provenance, tags, and personal notes.
- + Notes: Added a comparison of the new Muse, Luna, and DeepSeek coding prices, including current subscription deals and an accompanying panic-button illustration.
- ~ Skills radar: Preserved the existing data-career visuali
-
v2.6.13
- ~ Status: Kept the public health summary focused on useful source availability and removed credential, runtime, cache, and raw error details.
- ~ Quotes: Removed the internal fallback-provider label and corrected the page description.
- ~ Footer: Made the copyright year follow the build year automatically.
-
v2.6.12
- + Newsletter: Added a weekly, new-post-only digest with consented Netlify recipients, Resend delivery, duplicate suppression, test previews, and signed one-click unsubscribe links.
-
v2.6.11
- ~ Reading tracker: Renamed the learning progress interface and its controls around read and unread states.
- ~ Support: Removed deployment configuration instructions from the public page.
-
v2.6.10
- + Blog template: Added a newest-first changelog section for documenting post updates.
-
v2.6.9
- + Agent IDE post: Added an updated tier list and pros/cons comparison for Ghostty, Zed, cmux, and the other evaluated workflows.
-
v2.6.8
- ~ Fonts: Added the self-hosted Caveat face for handwritten editorial annotations.
-
v2.6.7
- + Guestbook: Synced five already-verified submissions and added verified-only and allowlisted approval modes to the guestbook skill.
- ⚑ Profile image
-
v2.6.6
-
v2.6.5
- ~ Centrali
-
v2.6.4
-
v2.6.3
-
v2.6.2
-
v2.6.1
- + Projects: Added data-driven Current work and Coming soon sections with status cards.
- + Projects: Added visual thumbnails and repository artwork for selected projects.
-
v2.6.0
- + Support: Added a metadata-driven support page and call-to-action with a safe setup state until an external support URL is configured.
- + Newsletter: Added a sticky subscribe action, homepage email form, and privacy-friendly Redis submission metrics.
- + Snippets and learning: Added browser-local snippet favorites and learning progress controls.
- + Monitoring: Added sampled Core Web Vitals collection and a monthly Lighthouse workflow.
- + Internationali
- ~ Home: Simplified Site Index hover states to a quiet title-color shift while retaining a clear keyboard focus outline.
- ~ Internationali
-
v2.5.1
- + Lexicon: Added "The IKEA Effect" entry with illustration.
- + Memes: Imported 6 new AI memes to the folio.
- + Vibes: Imported `x-axis-war-crimes` visual.
- + Assets: Fetched authentic full-color official brand SVGs for all 11 providers (`src/static/assets/providers/`) and 7 services (`src/static/assets/services/`) with Eleventy passthrough copy to `/assets`.
- ~ Refactor: Renamed `src/_data/memes.yaml` to `src/_data/ai-memes.yaml` and updated media-import skill to support Lexicon target.
- ~ Shortcodes: Converted raw markdown image syntax across 9 blog posts to custom Eleventy `{% image %}` shortcodes.
- ~ Folio: Styled Quick answer block matching the reference mockup layout with star header, vertical recommendation list, and link anchor.
-
v2.5.0
- + Folio: Agentic Coding Model Tier List — a new folio page at `/folio/model-tier-list/` with tiered model cards, service comparison table, API pricing table, and cost calculator. Driven by `src/_data/models.yaml`.
- + Skill: `update-model-list` skill for regenerating model YAML with current research.
-
v2.4.7
- + Notes: Tightened Codex note with side-by-side screenshots and gateway-drug commentary.
- ~ CMS: Reduced blog tag limit from 4 to 2 to match site policy.
- ~ Fonts: Removed remaining Google Fonts CDN links (Bricolage Grotesque, Caveat); switched to self-hosted fallback stacks.
-
v2.4.6
-
v2.4.5
- + Notes: Added note on Codex $20/mo being the best value AI coding plan, with cropped usage screenshots.
- ~ Visual polish: Added a consistent accent focus ring, clarified the homepage stats block on mobile, expanded Recent Activity to align with the homepage grid, and strengthened directory-row interaction feedback.
- ~ Reading: Increased long-form post copy si
-
v2.4.4
-
v2.4.3
- ~ Status: Clarified local secret coverage, fallback-free build wording, full service freshness dates, and added an attention queue for active fallback events.
-
v2.4.2
- ~ Colophon: Refreshed the stack notes with a NEAT Framework post link, current-version copy, moving-parts summary, and removed the internal migration-process reference.
- ~ Now: Split the page into written updates and pulled activity, with Reading and Watching sharing a two-column view capped at three items each.
- ~ About: Reworked the Hobbies text into a scannable bullet list.
- ~ Home: Swapped the At A Glance TIL counter for Snippets and renamed Quotes Saved to Quotations.
-
v2.4.1
- + SEO: Added sitemap index output plus separate post, snippet, and page sitemaps with absolute URLs.
- + SEO: Expanded BlogPosting JSON-LD with article body excerpts, word counts, and ISO reading durations.
- + Docs: Added an internal link audit note for the SEO cleanup pass.
- ~ SEO: Added `seoDescription` frontmatter for richer metadata while preserving brief on-page post descriptions, plus canonical/robots handling for draft, hidden, and redirect pages.
- ~ Feed: Render external tool labels as non-link badges so they do not point to missing taxonomy pages.
- ~ Raw exports: Included notes, reviews, and lexicon pages in `raw.txt` generation when they expose the copy-as-markdown control.
- ~ AGENTS.md, CLAUDE.md: Documented the 5-10 commit batch-push cadence to conserve Netlify build minutes.
-
v2.4.0
- + Status: Expanded `/status/` into a denser reliability dashboard with API coverage, tracked build health, performance metrics, and recent fallback/error logs.
- + Logging: Added lightweight build-time status event logging for data fetch fallbacks and structured runtime error logs for Netlify functions.
-
v2.3.9
-
v2.3.8
- + Status: Added a build-time `/status/` page for external service health, cache cadence, and fallback visibility.
- + Newsletter: Added a dedicated `/newsletter/success/` confirmation page.
- ~ Newsletter: Redirect successful Netlify form submissions to the confirmation page.
- ~ TODO: Converted the loose Buy Me a Coffee note into a deferred checklist item.
-
v2.3.7
-
v2.3.6
- ~ notes: Added a Simple Analytics migration PS to the small blog spike note.
-
v2.3.5
-
v2.3.4
- ⚑ note.njk, tailwind.css: Restored full-si
-
v2.3.3
- + quant-eval-stack.svg: Added a compact visual for reading quanti
- ~ 2026-06-12-local-llm-optimi
-
v2.3.2
- ~ 2026-06-12-local-llm-optimi
-
v2.3.1
- + Reading and Watching: Added compact book-cover and film-poster thumbnails on `/reading/`, `/watching/`, and the relevant `/now/` snippets, with styled placeholders for manual entries without artwork.
-
v2.3.0
-
v2.2.1
-
v2.2.0
- + Reading: Synced public Goodreads shelves into `/reading/` and `/now/` with cached build-time fallbacks and manual additions or overrides.
- + Now: Added `nowPage.yaml` as a fill-in-ready source for highlights and updates, and archived the previous page snapshot.
-
v2.1.1
- ⚑ loganime-test-v1-stamp-trim.png: Replaced the narrow hori
-
v2.1.0
- + Reviews: Added a dedicated `/reviews/` collection and editorial index for product reviews and buying articles.
- + Upper Midrange Is the Place to Be: Revived the hidden 2025 draft as the section's opening essay on learning hobbies through cheaper gear and shopping below the flagship tier.
- + Netlify CMS: Added review fields for entry type, product, category, price paid, rating, verdict, authorship, and a maximum of two tags.
-
v2.0.38
- ~ 2026-06-12-local-llm-optimi
-
v2.0.37
- ~ 2026-06-12-local-llm-optimi
-
v2.0.36
- + docs: Added a phased roadmap for testing and extending the local LLM optimi
- ~ 2026-06-12-local-llm-optimi
-
v2.0.35
- ⚑ eleventy.config.mjs, tailwind.css: Keep Markdown tables using native table layout on mobile and move hori
-
v2.0.34
- ⚑ eleventy.config.mjs, feed-card.njk: Generate optimi
-
v2.0.33
- ⚑ tailwind.css: Narrowed the picture centering CSS rule to match only post-body or site-content article containers (such as TILs and Notes), resolving unintended 1.5em margins on thumbnails in blog post lists.
-
v2.0.32
- ~ folder.njk, tags.njk: Migrated from raw styling headers to the shared page-header component to standardi
-
v2.0.31
- ~ 2026-06-12-local-llm-optimi
- ⚑ 2026-06-12-local-llm-optimi
-
v2.0.30
-
v2.0.29
-
v2.0.28
-
v2.0.27
- ⚑ eleventy.config.mjs, post listing templates, tailwind.css: Generate responsive AVIF/WebP post thumbnails at their rendered si
-
v2.0.26
- ⚑ tailwind.css: Let table columns si
-
v2.0.25
-
v2.0.24
- + battle-of-the-image-generators-stamp-trim.png: Generated and normali
-
v2.0.23
- + running-gemma-4-mtp-locally-stamp-trim.png: Generated and normali
- ~ 2026-06-12-local-llm-optimi
-
v2.0.22
-
v2.0.21
- + local-llm-optimi
- ~ startHere.yaml: Swapped "The NEAT Framework" featured post on the homepage with the new "Local LLM Inference Optimi
-
v2.0.20
-
v2.0.19
- + robots.txt.njk: Created dynamic robots.txt template to prevent crawler indexing waste on utility/archive pages.
- + Frontmatter descriptions: Added unique description metadata to top-level pages (index, projects, gallery, cv, vibes, quotes, now, games, workouts, tools).
-
v2.0.18
- + fetchWithFallback.js: Created a centrali
- ~ eleventy.config.mjs: Registered the new `computeAuthorship` and `writingsTimeline` Nunjucks filters.
- ~ spotify.js, steam.js, strava.js, github.js: Refactored remote data modules to fetch through the centrali
-
v2.0.17
-
v2.0.16
-
v2.0.15
-
v2.0.14
- + Added generated transparent monochrome thumbnail sketches to the remaining non-template blog posts.
- + Added posts for the image-generator comparison and Loganime still-frame trailer experiment.
-
v2.0.13
-
v2.0.12
- ~ Flattened the site background to a cleaner bone-white paper color and removed the light/dark gradient and noise overlays.
- ~ Shifted homepage, page headers, notes, post pages, navigation/footer spacing, and shared surfaces toward a denser Plus Jakarta Sans/JetBrains Mono editorial pass.
- ~ Updated the homepage eyebrow and bio copy around analytics, local AI, homelabs, and internet archives.
- ~ Simplified the homepage below the hero by removing duplicate featured and popular-post modules while keeping Featured Posts, Site Index, Recent Activity, and Quote of the Day.
- ~ Renamed the homepage Start Here section to Featured Posts, added unframed right-aligned thumbnails to those curated links, and restored Quote of the Day as the final homepage block.
- ~ Tightened the homepage Site Index two-column layout by keeping counts close to their labels.
- ~ Reused the existing feed grid card view for the capped homepage Recent Activity section.
- ~ Improved mobile table rendering with hori
-
v2.0.11
-
v2.0.10
-
v2.0.9
-
v2.0.8
-
v2.0.7
- ~ Humani
-
v2.0.6
- + Added editorial post shortcodes for semantic callouts, dated inline updates, definition popovers, and true sidenotes.
- + Added `docs/BLOG_POST_FEATURES.md` as the canonical feature inventory for future post-authoring and agent cleanup work.
-
v2.0.5
- + Added Markdown footnote support for inline references (`[^id]`) and definitions (`[^id]: note`) with compact endnote styling in the site's editorial typography layer.
-
v2.0.4
- + Created `src/notes/_template.md` for standardi
- ~ Standardi
-
v2.0.3
- ⚑ Fixed the masonry layout in the unified feed's grid view by restoring the missing `feed-masonry` class to the grid container and ensuring all items possess the `.feed-card` class required by the layout script.
- ⚑ Standardi
-
v2.0.2
-
v2.0.1
- ~ Standardi
-
v2.0.0
- + Docs: Added a repeatable workflow for bringing older pages onto the new design language without one-off typography patching.
-
v1.9.30
-
v1.9.29
-
v1.9.28
-
v1.9.27
-
v1.9.26
-
v1.9.25
-
v1.9.24
-
v1.9.23
- + `startHere.yaml`: Added a curated homepage canon used by the new Selected Work index section.
- ~ Reworked the shared site design language away from rounded glassy cards toward sharper, denser editorial surfaces with mono labels, flatter controls, and paper-like ruled backgrounds.
- ~ Rebuilt the homepage as an index of work and thinking: denser intro, at-a-glance counts, Selected Work, Site Index, Featured Blog, Recent Activity, and Signal/Popular sections.
- ~ Tightened navigation and footer chrome to match the new archive/workbench feel instead of app-style controls.
-
v1.9.22
- ⚑ Converted `about.md`, `more.md`, `colophon.md`, `now-archive.md`, and `folio/radiohead/links.md` to `.njk` - the markdown processor was wrapping Nunjucks-rendered `page-header` HTML in invalid `<p>` tags, causing hori
-
v1.9.21
- + cv.njk: Full page redesign using site-consistent `.surface` cards, `page-header` component, feather icon section headings, tech/domain badge pills, and contact strip - replaces raw HTML tables and inline styles.
- ~ base.njk: Rebalanced footer mega-menu - moved Games, Workouts, Listening, and Life in data from the overloaded EXPLORE column into ABOUT ME for even distribution.
- ~ base.njk: Changed Vibes nav icon from `music` to `image` (visual/meme collection, not music).
- ~ post.njk: Moved AI Assisted / AI Generated notice banner from below the copy-markdown button to immediately after the Draft notice, grouping all post-status notices together at the top of the article header. Uses `.surface surface-compact` styling for visual consistency.
-
v1.9.20
- ~ Standardi
-
v1.9.19
- + Added a distinct `.badge-featured` utility class utili
- ~ Replaced the text "Pinned" and the unicode star (★) with a `bookmark` Feather icon across all pinned badges to visually distinguish them from Featured items.
-
v1.9.18
-
v1.9.17
- ~ Introduced a shared `page-header` component and applied it across major archive, collection, utility, and project pages to unify section intros.
- ~ Standardi
-
v1.9.16
-
v1.9.15
- + Added manual guestbook entries to the `guestbook.yaml` data file.
- ~ Updated `cost-effective-coding-agents` post with 2026 market changes (Opus 4.7, Qwen Code OAuth, Amp status) and added Stack Blueprints and Routing Rules.
- ~ Grouped all local AI inference and benchmark posts under a new `local-inference` series folder. Added backward-compatible 301 redirects to `src/_redirects` to retain their original URLs.
- ~ Established `agents` and `homelab` series folders, grouping related posts. Added `giscusTerm` frontmatter overrides to retain original discussion threads.
- ~ Dismantled broad `tech` and `personal` folders into standalone tagged posts.
- ~ Added `docs/TAXONOMY.md` to formali
-
v1.9.14
- + 4 new quotes added to the Quotes collection (Anonymous, David Foster Wallace, Nassim Nicholas Taleb, Douglas Adams).
- + 10 new Agent Tick (AI memes) cards added to the folio.
- + 9 new vibes screenshots added to the vibes collection.
- + 4 original local photos imported with accurate EXIF tracking and metadata.
- + Created Prompt Library page (`/prompts/`) with prompts collection for testing language models.
- + Added first prompt: "Bouncing Balls in Spinning Heptagon" - complex physics simulation challenge.
- + Added short introduction to Gemma 4 26B-A4B post highlighting key features and model capabilities.
- + Added folio page dates documentation in `docs/instructions.md` to clarify that dates are permanent and manually controlled.
- ~ Unified media ingestion skill (`.agents/skills/media-import/SKILL.md`) established, defining standard pipeline logic for processing raw files from the `inbox/` into `photos.yaml`, `vibes`, and `ai-memes`.
- ~ Enforced MD5 hashing for photography imports to deduplicate uploads against previously ingested local photos.
- ~ Radiohead visual archive imagery fully migrated from root images folder directly into `src/static/img/folio/radiohead/` for better isolation.
-
v1.9.12
-
v1.9.11
- + Search page now supports type/tag/year filters with URL state sync and sort controls (relevance/newest/oldest).
- + Home page now shows a “Popular posts” section based on Redis-backed upvote totals.
- + Blog archive now includes year jump links with grouped year headings for easier browsing.
- + Added print-focused styles to improve readability and remove non-essential UI in printed output.
- ~ Search index payload was reduced by truncating embedded content in the client-side index.
- ~ Search result tag links now route snippet tags to `/snippets/tags/{slug}/` and post tags to `/tags/{slug}/`.
- ~ Theme-color handling is now centrali
-
v1.9.10
- ~ GitHub repos data fetch now persists successful responses to Eleventy `AssetCache` and falls back to cached data when live fetches fail.
- ~ Spotify and QOTD data modules now use quieter, safer logging (no token/payload dumps), while preserving existing data fallbacks.
- ~ Aligned top-level `sharp` dependency to `^0.33.5` to match `@11ty/eleventy-img` and reduce duplicate libvips runtime warnings.
- ⚑ Prevented accidental generation of the placeholder `/now/archive/YYYY-MM-DD/` page by disabling permalink output in `src/now/archive/_template.md`.
- ⚑ Removed stale `.DS_Store` artifacts from `src/folio` source tree.
- ⚑ Synced `docs/TODO.md` status for already-implemented items: stats density updates, la
-
v1.9.9
-
v1.9.8
-
v1.9.7
- ~ Agent Tick UI copy now uses a terminal prompt glyph (`❯`) instead of `//`, and the main header title now includes a tick icon next to `TICK`.
-
v1.9.6
-
v1.9.5
- + AI memes folio: 11 new memes added (total: 14 entries)
- + Video support for folio memes with inline playback (click to play/pause)
- ~ AI memes folio: Updated permalink from `/folio/ai-memes/` to `/folio/agent-tick/`
- ~ AI memes folio: Improved captions - replaced text-copying descriptions with concise, witty titles
- ⚑ Folio index now points to the Agent Tick canonical URL (`/folio/agent-tick/`) and legacy `/folio/ai-memes/` links redirect correctly.
- ⚑ GPT-OSS optimi
-
v1.9.4
-
v1.9.3
-
v1.9.2
- + Snippet pages now track and display per-snippet view counts using namespaced keys (`snippet:{fileSlug}`) to avoid collisions with post counters.
-
v1.9.1
- ⚑ Preserved engagement continuity for renamed posts by merging legacy Redis upvote/view keys into canonical slugs (including `optimi
-
v1.9.0
- + `/folio/` section: themed standalone web pages for personal obsessions - each with its own design, fonts, palette
- + `/folio/radiohead/` - first folio: a curated web archive of Radiohead's internet presence, archive ma
-
v1.8.5
- + uses.yaml: Audio section with AirPods Pro 2, Sennheiser HD 4.50 BTNC, Crinacle Zero 2, Moondrop Chu 2, Moondrop Quarks DSP
-
v1.8.4
- ~ uses.yaml: Renamed Productivity → Organi
-
v1.8.1
- ~ Stats page (`/stats/`) full redesign: Dense Editorial layout, row-item stats, posts-per-year CSS bar chart, real word count (summed from rendered post content), avg words/post - removed card grid and fake estimated word count
-
v1.8.0
-
v1.7.2
- + Notes: `src/microposts/` renamed to `src/notes/`; "micropost" → "note" everywhere (type, badge, filter)
- + Notes: each note now has a permalink at `/notes/{slug}/` and renders via `layouts/note.njk`
- + More page: proper h1 + description line below title (matches other listing pages)
- ~ Navbar: About/Blog/Now text links hidden on mobile (sm: breakpoint) - compass + slider + dark mode remain; no more squished nav
- ~ Homepage feed view toggle: replaced custom active state with `view-toggle` CSS + feather icons (consistent with blog/snippets)
- ~ Feed page: search moved into header row alongside view toggle (like blog); view toggle uses `view-toggle` CSS + icon-only feather icons; h1 now matches blog si
- ~ Default accent color changed from amber to teal (`#14b8a6`)
- ~ Feed grid on homepage now uses `items-start` for dynamic card heights (matches other grids)
- ⚑ Nav: font bumped to `text-base` on title + links; `gap-1` added to icon list for mobile breathing room
- ⚑ Mobile footer: 2-col categori
- ⚑ Homepage feed grid: add `data-feed-masonry` + masonry script include so grid cards have true dynamic heights (matching feed page)
- ⚑ Mobile slider: replaced w-20 touch-hostile range input with a tap-to-cycle colored dot on xs screens; full gradient slider remains on sm+
- ⚑ Footer mobile: replaced 2×2 grid (ugly) with flat wrapped inline link list on mobile; 4-column categori
-
v1.6.8
- ~ base.njk: Accent slider moved from extended footer (required scrolling ~1300 lines into page) into the nav bar, between the compass icon and dark mode toggle - now always visible on every page
- ~ base.njk: Slider redesigned as a compact inline gradient bar (w-20/w-28) with a white hairline indicator; no thumb ball needed (gradient itself shows position)
- ~ base.njk: Site title unified to "carteakey.dev" on both desktop and mobile - removes "Kartikey Chauhan" desktop variant and the `font-et-book` (Latin serif) font
- ~ base.njk: Nav `py-3` → `py-3.5` (slightly taller for consistency with body text si
- ~ snippets.njk: Full rewrite to match blog (archive.njk) exactly - same inline h1+count header, same search field style, list view as default, list button first then grid, same list row design (date col + title + language tag), same grid card design (feed-card-full style with purple dot). Removed page-header component and wrapping max-w div.
- ~ index.njk: Homepage feed now shows list toggle FIRST, then grid toggle (consistent with blog/snippets). Removed redundant "→ Feed" footer link (was duplicate of "All →" in header). Grid bumped to 3-col (lg:grid-cols-3). Shows 9 items.
- ~ index.njk: Feed default is now list view (localStorage key h-feed-view), matching editorial density preference.
- ⚑ tailwind.css: Moved `.title-hover:hover` completely OUT of `@layer components` - in Tailwind v4, `@layer utilities` always beats `@layer components` regardless of specificity, so hover color was always overridden by `text-gray-900 dark:text-gray-100`. Unlayered CSS beats all layers. Added `!important` as belt-and-suspenders.
- ⚑ base.njk: Accent slider thumb was invisible - Tailwind v4 only scans static HTML class names; dynamic Alpine `:class="themes[currentIndex].color"` bindings like `bg-amber-500` are never included in generated CSS. Fixed by switching to `:style="background-color: ${themes[currentIndex].hex}"` with hex values embedded directly in the data object (matching the `ACCENT_COLORS` map in theme.js).
- ⚑ base.njk: Slider label now uses `x-text="themes[currentIndex].name"` (was `.label` - removed unused label field from theme data).
- ⚑ tailwind.css: Added `.site-content .title-hover:hover` (specificity 0,3,0) alongside `.title-hover:hover` (0,2,0) - Tailwind's `dark:text-gray-100:is(.dark *)` also has 0,2,0 and wins by cascade order when equal; the higher-specificity rule now correctly applies accent color on hover in blog/snippets list rows
- ⚑ base.njk: Accent slider `updateTheme()` now calls `window.setAccentTheme()` explicitly instead of bare `setAccentTheme()` - Alpine.js component scope doesn't reliably fall through to window globals, causing the slider to move visually but not update the CSS variable
- ⚑ snippets.njk: Added `| reverse` to both list and grid loops - snippets collection is oldest-first by default (unlike posts which has an explicit sort); now shows newest snippets first, matching blog behavior
- ⚑ index.njk: "All →" and "→ Feed" both linking to /feed/ (duplicate). Kept only "All →" in the section header.
- ⚑ tailwind.css: Links are now gray (color: inherit) with underline by default, accent color on hover - removes all accent-as-default link color. Works consistently in both prose and not-prose contexts
- ⚑ tailwind.css: Removed `!important` from `.not-prose a` reset - no longer needed since content links don't set accent by default
- ⚑ tailwind.css: `.site-content picture` centering now scoped to `article picture` only - fixes profile avatar being pushed/clipped by `margin: 1.5em auto`
- ⚑ tailwind.css: `.not-prose picture` reset added - avatars/icon images in UI components no longer affected by post-image centering rules
- ⚑ feed.njk: Description changed from "/now snapshots" to "and updates"
-
v1.6.2
- + base.njk: Global code block copy button - clipboard SVG icon appears on pre:hover, turns accent on hover, switches to checkmark on success
- + tailwind.css: `.copy-code-btn` styles - positioned absolute, dark semi-transparent background, accent on hover
- + src/static/css/prism/prism-light.css: New clean GitHub-inspired light syntax theme (replaces broken prism-coy)
- + stats.njk: Hero callout strip with 4 large accent-colored numbers (Posts, Snippets, This Year, Tags)
- + feed.njk: List/grid toggle, type filter chips, inline search - list view defaults to homepage activity style
- + base.njk: Footer nav links now have feather icons (clock, activity, edit-3, code, box, image, music, etc.)
- + base.njk: Site title now shows accent color always (not just on hover)
- + base.njk: Dark mode toggle icon uses accent color
- + index.njk: Profile avatar larger (w-20 h-20) + conic gradient ring restored
- + index.njk: Homepage footer link text cleaned up ("Blog · Snippets · Feed · Search")
- + feed-card.njk: Pinned star icon (★) shown in list variant when item is pinned
- ⚑ base.njk: "More" (compass) nav icon now uses accent color
- ⚑ tailwind.css: `.site-content .not-prose a` reset uses `!important` to definitively prevent accent color from leaking into feed cards and UI components
- ⚑ archive.njk: Removed `| reverse` from both list/grid loops - `collections.posts` is already sorted newest-first in eleventy.config.mjs; `| reverse` was making it oldest-first
- ⚑ snippets.njk: Grid cards switched from `card card-hover card-compact` to flat `border border-gray-200` style; list view rewritten as `divide-y` rows with date col + title + language tag (matches blog list design)
- ⚑ tailwind.css: `.site-content picture` and `.site-content picture img` rules added - images in post content are now centered with `margin: auto`
- ⚑ picture CSS: Added `text-align: center` and `display: inline-block` on img for proper centering
- ⚑ index.njk: Homepage footer → "→ Feed" (single clean link)
- ⚑ index.njk: Profile avatar wrapped in constrained `w-20 h-20 rounded-full overflow-hidden` div - fixes blurriness and gradient ring
- ⚑ eleventy.config.mjs: Image shortcodes now use `widths: [400, 800, 1200, "auto"]` with proper `si
-
v1.5.8
- ~ post.njk: Post navigation redesigned - "Next →" / "← Previous" labels with title-hover links
- ~ page-header.njk: h1 `text-2xl` → `text-xl` for density consistency
- ~ 404.md: h1 `text-4xl/5xl` → `text-3xl/4xl`, cards flattened (removed bg+shadow), text-lg → text-sm, amber hover links → `title-hover`, py-20 → py-16
- ~ quotes.njk: h1 `text-3xl` → `text-xl`, quote cards `card-padding` → `card-compact`, `text-base` → `text-sm`
- ~ skills.njk: `text-lg` → `text-sm` on breakdown heading
- ~ stats.njk: card padding `p-5 sm:p-6` → `p-3 sm:p-4`, tag icon bg → accent color via CSS variable
- ~ guestbook.njk: headings `text-lg` → `text-sm`
- ~ newsletter.njk: headings `text-lg` → `text-sm`
- ~ blogroll.njk, bookmarks.njk: headings `text-lg` → `text-sm`
- ~ postslist.njk, archive.njk: Pinned badge → accent CSS variable (removes hardcoded amber)
- ~ post.njk: avatar hover glow → accent CSS variable gradient (removes hardcoded amber)
- ~ base.njk: skip-link `focus:bg-amber-500` → `style="background: var(--accent-color)"`
- ~ tailwind.css: `.badge-count` → accent CSS variable (removes hardcoded amber); `.tag-interactive:hover` → accent CSS variable; `color-mix` for consistent theming
- ⚑ tailwind.css: `.site-content a` link styling scoped to `:is(p, li, blockquote, td, th) a` - prevents accent-color from applying to UI/nav/card links inside site-content
- ⚑ base.njk: Added `not-prose` to `<nav>` and `<footer>` elements to isolate them from content typography styles
- ⚑ tailwind.css: Added TOC (`<nav class="toc">`) styles - no disc bullets, clean link style with accent hover
- ⚑ post.njk: Avatar hover glow → accent CSS variable gradient (removes hardcoded amber-400)
-
v1.5.3
- ~ stats.njk, guestbook.njk, newsletter.njk: Replaced heavy glassmorphism `cardShell` (shadow-lg + bg-gray-100/80) with clean flat `border` cards - consistent with new dense editorial design language.
- ~ post.njk: Sidebar author/TOC cards replaced `card-elevated` with flat border. Upvote/reaction active states now use `var(--accent-color)` via inline style instead of hardcoded amber classes.
- ~ comment-pointer.njk: Replaced `card-elevated` with flat border card.
- ~ snippet-tags.njk: Full rewrite - flat `divide-y` row list matching snippets.njk list view. Added breadcrumbs.
- ~ newsletter.njk: Input focus rings use `accent-field` class. Icon circles simplified (no amber background). Removed `hover:shadow-lg`.
- ~ guestbook.njk: Form inputs use `accent-field`. Header aligned with other pages.
- ~ stats.njk: postsThisMonth counter uses `var(--accent-color)`. Tag icon no longer hardcoded amber.
- ~ page width: Stepped down one Tailwind si
- ~ UI: Second-pass redesign - coherent design language built from the ground up.
- ~ feed-card.njk: New `list` variant for homepage (single-row grid layout: date · dot · type · title). `full` variant now uses `feed-card-full` (flat border card, no shadow) for the /feed page grid.
- ~ index.njk: Full homepage rewrite. Clean hero (avatar + name + bio + quick links inline). Featured post as minimal text block. QOTD as bare blockquote. Feed section replaced masonry grid with a scannable `feed-list` single-column chronological activity log.
- ~ archive.njk (blog): Full rewrite. Default list view (matches postslist.njk style: date left col, title+desc right). Grid view uses `feed-card-full` cards consistent with /feed. Search bar compact and inline with view toggle.
- ~ feed.njk: Cleaned up, removed duplicate inline JS (handled by masonry-script include).
- ~ postslist.njk: Refined layout - `md:w-36` fixed date column, tags below date on desktop, description `text-sm`, consistent with blog page.
- ~ tailwind.css: Added `.feed-list`, `.feed-list-row`, `.feed-list-dot`, `.feed-list-date`, `.feed-list-type`, `.feed-list-title` for homepage activity list. Added `.feed-card-full` for grid cards. Removed heavy `.card-hover` box-shadow - now border-color transition only.
- ⚑ index.njk: Featured section `★ Featured` label and `Read →` link now use `var(--accent-color)` instead of hardcoded amber, respecting the accent theme switcher.
- ⚑ now.njk: Removed `cardShell` variable, tightened layout, date in `meta-text` style. `not-prose` wrapper around snippets avoids prose override.
- ⚑ workouts-snippet.njk, games-snippet.njk: Replaced `cardShell`+shadow cards with `feed-card-full` style. Hover colors use `var(--accent-color)`. Reduced padding.
- ⚑ tags-list.njk: Tag links now use `accent-link` class (respects theme switcher) instead of hardcoded `text-amber-600`.
- ⚑ search.njk: Result title hover and loading spinner use `var(--accent-color)` instead of hardcoded amber.
- ⚑ snippets.njk: Arrow link on list-view items uses `var(--accent-color)` on hover.
- ⚑ base.njk: Restored `prose-lg` for comfortable reading line height.
-
v1.4.7
- + post(2026-02-18-optimi
- ⚑ post(2026-02-18-optimi
-
v1.4.6
- + Guestbook: New sticky-notes design with pastel colors, random rotations, CSS tape decorations, and Caveat handwriting font.
- + Guestbook: Data-driven entries from `guestbook.yaml` with Netlify Forms submission and manual curation note.
- + Uses page: Neofetch-style ASCII art hardware info block with monospace specs display.
- + Uses page: "Retired" section with strikethrough styling and retirement dates for old tools.
- + Uses page: "Changelog" section with timestamped tool change history.
- + Skills page: New `/skills` page added to footer navigation.
- ~ Footer: Reorgani
-
v1.4.5
- + Blog page: Search filter (like snippets) with live filtering by title, tags, and description.
- + Footer: Social media icon links (LinkedIn, GitHub, Search, RSS, Newsletter) in centered row.
- ~ Card component: Updated background to white (`#fff`) in light mode and solid dark gray in dark mode for consistency with feed masonry cards.
- ~ Blog cards: Added data attributes for filtering (`data-title`, `data-tags`, `data-body`).
- ~ Footer navigation: Enhanced with all site links, separators, and "Made with ❤️" section.
- ~ UPDATED labels: Standardi
-
v1.4.4
- + Post layout: Author profile card in the left sidebar (XL screens) with photo, name, tagline, and social links.
- + Swirly arrow annotation CSS component (`.annotate`) for adding handwritten-style margin notes to text.
- + Annotation variants: `.annotate-left`, `.annotate-right`, `.annotate-up` for different arrow directions.
- + Handwritten note utilities: `.handnote` for inline styled text, `.margin-note` for sidebar notes.
- ⚑ Navbar: vertical alignment of nav links, "more" dots icon, and dark mode toggle button now properly centered.
- ⚑ Navbar: replaced `<span>` elements with semantic `<li>` elements for better accessibility.
-
v1.4.3
- + Visual polish: new `.card-elevated` component with layered shadows and smooth hover lift effect.
- + Visual polish: `.card-glass` glassmorphism variant with backdrop blur.
- + Visual polish: `.link-glow` animated underline effect for links.
- + Visual polish: `.gradient-border` animated gradient border on hover.
- + Visual polish: `.text-gradient` utility for accent-colored gradient text.
- + Visual polish: `.divider-gradient` refined hori
-
v1.4.2
-
v1.4.1
-
v1.4.0
- + Skip-to-content accessibility link for keyboard and screen reader navigation.
- + Service worker for offline reading with cache-first strategy for static assets.
- + `/uses` page listing hardware, software, and tools used for development.
- + Privacy-friendly view count tracking via Upstash Redis, displayed on blog posts.
- + Interactive tag filtering on `/blog/` page using Alpine.js (no page reload).
- + Search URL state persistence (`?q=`) with keyboard navigation (arrow keys + Enter).
- + Self-hosted Alpine.js, TypeIt, and Prism CSS themes (removed CDN dependencies).
- ~ Site background redesigned with softer slate/marble-white gradient and subtle paper grain texture.
- ~ Dark mode background updated to match the cleaner aesthetic.
- ~ RSS feed now includes all posts (removed 10-post limit).
- ~ All email references updated to [email protected].
-
v1.3.20
- + Netlify `_redirects` now covers every legacy `/post-slug` path, bouncing visitors to the new `/blog/` URLs without 404s.
- ~ `workouts-snippet.njk` surfaces the three latest Strava activities in responsive cards so desktop layouts form a single row.
- ~ `/now/` adopts the shared card shell, compresses the hero photo, and aligns workouts/games into three-column grids like their dedicated pages.
- ~ `/quotes/` reuses the masonry grid script from the feed/gallery so saved quotes auto-span by height.
- ⚑ The hero photo on `/now/` now uses the same constrained styling as blog imagery, avoiding the oversi
-
v1.3.19
- + Dedicated `/guestbook` page, each using the shared card shell and navigation breadcrumbs.
- + Netlify-backed guestbook form with email and GitHub issue fallbacks for alternative submissions.
- ~ Stats intro now owns a self-deprecating data joke, the quotes page moved to the unified card layout, and the blog archive lists every post inside matching cards.
- ~ Bookmarks, blogroll, snippets, and feed cards all reuse the single card shell so surface treatments stay consistent site-wide.
- ⚑ Steam playtime conversion now emits decimal hours, ensuring recent games display accurate hour counts instead of rounding to
-
v1.3.18
- ~ Global grain overlay now leans on a gentler turbulence blend with lower opacity so the paper backdrop reads as texture rather than static.
- ~ Homepage feed CTA inherits the active accent palette, and the stats technical details compress into accent-lined columns for quicker scanning.
- ~ Newsletter feature cards adopt badge-style icon caps so headings and glyphs stay aligned.
-
v1.3.17
- ~ Projects, games, stats, newsletter, and workouts now share the same card treatment as the blogroll/bookmarks layouts for a cohesive surface.
- ~ Newsletter subscribe CTA picks up the active accent palette, and supporting cards reuse the new shell styling.
- ~ Vibes board si
-
v1.3.15
- ~ Grain overlay now uses a softer fractal noise texture with gentle blending in light and dark themes.
- ~ Post imagery gains tighter max-widths, rounded framing, and tuned shadows for better long-form readability.
- ~ Mobile navigation swaps the lone home icon for a `carteakey.dev` wordmark and centers the hero portrait on small screens.
-
v1.3.14
- + Feed page gains a load-more control that reveals timeline items in batches while keeping the masonry layout tidy.
- ~ Global backdrop now layers a subtle grain overlay over the existing gradients for a paper-like finish.
- ~ Tailwind theme exposes every bundled font family and drops unused variants so utilities like `font-urbanist` or `font-geist` just work.
- ~ Homepage feed heading includes a direct link to `/feed/` with an arrow affordance for quick access.
-
v1.3.13
- + About page now surfaces a random fact sourced from a maintainable data list.
- + Homepage introduces a featured post card driven by a `featured` front matter flag.
- + Feed links now appear in `/more/` via an inline icon and the footer utility row.
- ~ Global font si
-
v1.3.12
- + New meta post “How I Let AI Run Wild on My Blog (with Copilot & Codex)” outlining the current prompt and instructions workflow.
- ~ Homepage feed now reuses the masonry grid script from `/feed/` so cards auto-span to their content height.
- ~ Primary navigation drops the dropdown menu in favour of a three-dot icon link that jumps straight to `/more/`.
- ~ Breadcrumbs stay hidden on small screens to free up vertical space while remaining available on desktop.
-
v1.3.11
- ~ Desktop reading frame padding tightened while keeping the notebook frame centered.
-
v1.3.10
- ~ Notebook reading frame now uses a translucent panel with squared edges and a softer drop shadow to keep the focus on the page.
- ~ Base layout picks up extra top and bottom padding so the notebook frame sits comfortably within the desktop backdrop.
-
v1.3.9
- + Inline critical CSS block in the base layout to style the shell before the main bundle loads.
- ~ Global background now uses a subtle gradient treatment tailored for light and dark modes.
- ~ Footer social and utility icons stay on a single line on compact screens while keeping the grouped layout on desktop.
- ~ Bookmarks entries adopt the shared card styling used by blogroll and projects for consistent presentation.
- ~ The feed timeline now uses a masonry grid with Resi
-
v1.3.8
- + Conversation pointer component that links to `#post-comments`, usable inline or in the sidebar.
- + Feed page masonry script to auto-resi
- ~ Notebook frame widened with square corners, deeper padding, and a gray gradient doodle backdrop.
- ~ Long-form prose now uses the `et-book` family with a slightly wider measure for calmer reading.
- ~ TOC and sidebar callouts share the primary background, pick up extra padding, and adopt the accent-aware controls.
-
v1.3.7
- + Post sidebar now has a dedicated "Conversation space" card ready for future inline comments alongside the outline.
- + Accent-aware utility classes (`accent-link`, `accent-button`, `accent-button-outline`, `accent-focus`) driven by CSS variables for reusable theming.
- ~ Post layout adopts a notebook-style frame on desktop with an off-white surround that stays hidden on mobile and `fullWidth` pages.
- ~ Outline and sidebar styling reuse the accent palette and off-white backdrop to match the refreshed reading frame.
-
v1.3.6
- + Ambient off-white doodle backdrop using `src/static/img/patterns/hobbies-doodle.svg` and a softened site frame around the reading column.
- ~ Feed grids now align cards to their natural height so content length dictates the card si
-
v1.3.5
- + Stats page now reads Lighthouse scores from `_data/lighthouse.json`, exposing the run metadata alongside the four category scores.
- ~ Feed page and homepage now share a reusable card component with styling that matches other site cards and uses denser typography.
- ~ Snippets index adopts the site card grid, refreshed search UI, and inline metadata chips for languages and tags.
- ~ Base layout typography tightened across the site to increase information density without sacrificing readability.
-
v1.3.4
- + Projects page now renders a cached GitHub contributions heatmap backed by the new `githubContributions` data source.
- + Floating "Back to Top" control appears on scroll with reduced-motion friendly smooth scrolling.
- ~ 404 page adopts the main layout with curated fallback links and contact prompts.
- ~ Bookmarks view uses the same card grid styling as Blogroll/Projects, with per-category counts and anchors.
-
v1.3.3
- + Post reactions: emoji-based feedback bar backed by a new Netlify function (`reactions.js`) and Upstash hashes, including localStorage safeguards.
- + Documentation refresh: `docs/instructions.md` now captures the full Copilot/Codex playbook alongside the active `docs/prompt.md` brief.
- + Meta: "Working with Copilot & Codex on carteakey.dev" post covering the agent workflow and release loop.
- ~ Bookmarks page now surfaces totals, per-category anchors, sorted entries, and three new resources across architecture, career, and systems operations.
- ~ Eleventy build adds an output transform that normalises relative asset links inside posts and rewrites legacy `/posts/` URLs to `/blog/`.
- ~ TODO tracking reorganised with an auto-archived "Completed TODOs" section to keep the active list focused.
-
v1.3.2
- + Feed: extended unified timeline to include photos, vibe board entries, microposts, snippets, blog posts, and /now archive updates with per-type metadata.
- + Blog folders: automatic `/blog/{folder}/` listing pages generated from the posts directory structure, with breadcrumb-aware pagination.
- + Post asset pipeline: copies allowed files stored alongside posts into the matching `/blog/` output path so relative links (e.g., `./diagram.png`) work out of the box.
- + Documentation: EthicalAds setup guide at `docs/ETHICAL_ADS_SETUP.md` detailing configuration steps.
-
v1.3.1
- + Micropost collection with inline-only entries feeding the unified activity stream.
- + EthicalAds placement for posts and snippets, backed by a reusable sidebar component and global script loader.
- + Gradient KC logo (`src/static/img/logo.svg`) now displayed in the site navigation.
-
v1.3.0
- + **Stats Page**: Dedicated Lighthouse Performance section with all 4 categories (Performance: 94, Accessibility: 95, Best Practices: 100, SEO: 91)
- + Visual progress bars for each metric
- + Color-coded cards with gradient backgrounds
- + Individual icons for each category (
-
v1.2.0
- + Bookmarks page: New curated reading list of recommended articles and resources
- + Organi
- ~ Footer: Reorgani
-
v1.1.1
- ~ Blogroll: Increased information density with 2-column grid layout and compact cards
- ~ Navigation: Removed Search, Blogroll, and Newsletter from main nav dropdown (now only in footer)
- ~ Stats page: Added Lighthouse performance score card with A11y and SEO metrics
- ⚑ Stats page: Fixed "Days Since Last Post" bug - now correctly shows days since most recent post instead of first post
-
v1.1.0
- + Search functionality across posts and snippets
- + Full-text search with live filtering
- + Search by title, description, content, or tags
- + Results sorted by relevance
- + Clean UI with result count display
- + Search icon in footer for easy access
- + Related posts feature
- + Automatically shows up to 3 related posts based on shared tags
- + Compact design with border accent
- + Displays at the bottom of each blog post
- + Loading states for dynamic content
- + Added loading spinner for upvote count fetching
- + Smooth opacity transition during loading
- + Newsletter form submission loading state
- + Blogroll page
- + Expanded to 30+ recommended blogs and websites
- + Includes web dev, self-hosting, AI/ML, and data science resources
- + Organi
- ~ Post list layout: date and reading time now stack vertically in left column (desktop)
- ~ Navigation: Added Search, Blogroll, and Newsletter to dropdown menu
- ~ More page: Updated with all new pages including search, blogroll, and newsletter
- ~ Newsletter wording updated to focus on AI, data science, and self-hosting content
- ~ Related posts section made more compact with cleaner design
-
v1.0.1
- ⚑ Easter egg features now working correctly
- ⚑ Konami code (↑↑↓↓←→←→BA) key detection fixed with proper case-insensitive comparison
- ⚑ Double-click site title detection improved with timestamp-based logic
- ⚑ Triple-click footer sparkle mode now properly detects clicks in footer area
- ⚑ Shift+click theme slider achievement counter wrapped in DOMContentLoaded
- ⚑ Reading time layout in post list view
- ⚑ Desktop: Date and reading time now displayed in single left column (stacked vertically)
- ⚑ Tags moved to separate row below description in left column
- ⚑ Mobile: Maintains hori
-
v1.0.0
- + Estimated reading time feature for blog posts
- + Added `readingTime` filter calculating based on 200 words per minute
- + Display reading time with clock icon in post layouts
- + Show reading time in post list views (both mobile and desktop)
- + Automatic word count from content with HTML tag stripping
- + JSON-LD structured data for enhanced SEO
- + BlogPosting schema for blog posts with headline, description, author, dates, keywords
- + WebSite schema for homepage with SearchAction potential
- + Proper author and publisher information
- + Integration with existing metadata
- + SEO meta tags optimi
-
v1.8.2
- + `/notes/` list page: all notes sorted by date with inline content + permalink, listed in footer + more page
- + Keyboard shortcuts: changed from `g+key` to `Ctrl/Cmd+key` (Mac-aware); visible `? shortcuts` button in footer
- + Now archive: shows full entry content inline like changelog (not just link)
- + Changelog: extended with git history before first CHANGELOG.md entry, grouped by month, styled as "Commits" with gray dots
- + Reading shelf section added to `/now` page (currently-reading books with progress bars)
- + Footer Read category: Notes, TIL, Reading links added; Meta category: Changelog, Colophon added
- + More page: updated with all new pages (notes, til, reading, changelog, colophon)
- ⚑ More page: removed duplicate breadcrumbs (home.njk already renders them for non-root pages)
- ⚑ Stats: posts this year / posts this month counts now correctly use `countInYearMonth` filter (previous `date("Y")`/`date("n")` calls failed silently)
- ⚑ Stats: Latest post now sorted by date (not pinned order) via `sortByDate` filter; font si
-
v1.8.3
- ~ Keyboard shortcuts: removed all Ctrl/Cmd combos (hijacked browser shortcuts); now bare letter keys (h/b/f/s/n/t/r/d/?/) - no modifier required
- ~ Added `/` shortcut for search navigation
-
August 2026
- · docs(blog): add post changelog convention
- · feat(blog): refresh agent IDE tier list
- · fix(annotations): restore handwritten font and prevent overlap
- · fix(reading): filter to tracked in-progress books
- · feat(guestbook): sync verified entries safely
- · docs(reading): note shelf rendering fixes
- · fix(reading): render Goodreads dates and ratings
- · fix(profile): load high-resolution zoom image
- · feat(skill): automate guestbook approvals
- · refactor: consolidate Eleventy collection rules
- · refactor: simplify site dependencies and helpers
- · fix(deps): patch dependency vulnerabilities
- · feat(models): refresh tier list to August 2026 lineup and fix icons
- · feat(notes): add AI coding price wars note
-
July 2026
- · feat(projects): refresh directory and dependency baseline
- · CAR-84 Pause Hindi rollout and document trimmed fonts
- · CAR-84 Merge main and resolve release metadata
- · feat(assets): replace monochrome icons with full-color official brand SVGs
- · feat(assets): relocate SVG assets from src/assets to src/static/assets
- · feat(folio): add provider and service SVG icons, update Quick answer card layout
- · style(folio): update quick recommendations container to warm paper theme
- · style(folio): format model tier list quick recommendations into responsive card grid
- · feat(inbox): import media, add lexicon entry, rename ai-memes data
- · refactor(images): migrate raw markdown image syntax to Eleventy shortcodes
- · fix(tags): trim post tags to 2-tag max guideline
- · CAR-84 Close completed repository backlog
- · CAR-84 Complete local inference guide evidence pass
- · CAR-84 Add opt-in multilingual pages
- · CAR-84 Add generated UI smoke checks
- · CAR-84 Trim unused web fonts
- · CAR-84 Version first-party asset URLs
- · CAR-84 Add monthly Lighthouse audit
- · CAR-84 Add sampled Core Web Vitals monitoring
- · CAR-84 Add browser-local learning tracker
- · CAR-84 Add local snippet favorites
- · CAR-84 Add newsletter funnel and submission metrics
- · CAR-84 Add configurable support flow
- · style(home): soften directory hover
- · fix(notes): drop side-by-side layout, keep single dark screenshot in codex note
- · feat(folio): agentic coding model tier list with YAML data, filters, pricing calculator
- · fix: cms tag limit, remove google fonts cdn, dead min filter; content: tighten codex note imagery + gateway drug commentary
- · merge: resolve conflicts, keep 2.4.6
- · feat(notes): add Codex best value note with usage screenshots
- · docs(planning): initialize Linear tracking
- · fix(posts): preserve full-bleed tables
- · fix(posts): widen desktop rail layout
- · revert(posts): restore sidebar layout
- · fix(posts): fit spacious rails on desktop
- · fix(posts): keep desktop rails stable
- · fix(posts): restore compact desktop rails
- · style: polish site interaction states
- · few updates
-
June 2026
- · seo: improve metadata and sitemaps
- · docs(todo): consolidate backlog
- · feat(status): add integration health page
- · fix(notes): cap archive images
- · fix(notes): restore note title scale
- · fix(notes): cap note images
- · feat(home): add typing intro
- · docs(llm): tighten quant guidance
- · docs(llm): implement phase two guide additions
- · Document reading and watching feed updates
- · fix(blog): replace Loganime horizontal film strip thumbnail with a square contact sheet
- · feat(reviews): add product review section
- · docs(llm): restore wide scope statement
- · docs(llm): restore direct practical voice
- · docs(llm): apply phase one guide corrections
- · fix(tables): restore mobile readability
- · fix(feed): keep async thumbnails out of Nunjucks macros
- · docs: document Nunjucks async macro feed-card bug
- · docs(llm): add optimization guide guardrails
- · fix(ci): switch build command to npm run build to avoid corepack EACCES
- · fix(scripts): remove pnpm exec from package.json scripts to avoid EACCES in corepack
- · fix(ci): update build command to enable corepack & optimize post thumbnails
- · fix(tables): auto-size compact columns
- · Switch site build to pnpm
- · Polish local LLM optimization guide
- · fix(blog): restore post thumbnails in folder views and apply recent site updates
- · fix(archive): drop ml-auto so badges sit next to title, not far right
- · fix(archive): move badges to right of title in list view
- · chore: use hidden: true instead of draft: true to hide Gemma 4 12B post
- · chore: set draft to true for Gemma 4 12B post to hide it
- · chore: set authorship of master optimization guide to ai-assisted
- · feat: publish local LLM optimization guide
- · chore: focus stack post purely on inventory and swap architecture, removing optimization details
- · chore: distinguish between serving stack and static dashboard visualization
- · chore: change authorship to ai-generated and add colorful dashboard sub-items
- · feat: add 12GB VRAM miracle blog post outlining the L3MS stack
- · docs: point 12B assistant model to official Unsloth repository
- · docs: add QAT vs Q8 explainer in the 26B post
- · feat: embed speed GIF in Gemma 4 posts and correct CPU spec to i5-12600K
- · feat: publish Gemma 4 26B/12B QAT & MTP local benchmarks
- · fix(feed): move list row badges to trailing right column
-
May 2026
- · feat: add image generator battle post with assets, update related blog posts, and clean up temporary source images.
- · delete tmp
- · Update post with vision/MTP drafting limitation note
- · Promote Gemma 4 MTP Vision to default stack model
- · Update Gemma 4 post: Switch to TurboQuant fork and add tuned benchmarks
- · Compare Gemma 4 MTP performance to Qwen 3.6
- · Reframe vision support and add benchmarks for Gemma 4 MTP
- · fix(post): remove redundant post-header border-bottom causing double line with hr.divider-gradient
- · Add Gemma 4 MTP setup post
- · style(post): image density pass — smaller hero, max-height cap on body images, fix double-line
- · Add vision benchmark note to MTP post
- · Reframe vision support in MTP blog post
- · Update post to reflect vision support in MTP
- · Update MTP blog post: MTP merged into mainline
- · chore(utils): remove stale scripts
- · style: simplify off-white editorial theme
- · Update MTP blog post with comprehensive benchmarking, parameters, Gemma 4, and spec-decode concepts
- · Add advanced MTP tuning notes to Qwen 3.6 post
- · Update Qwen 3.6 MTP post with pre/post results, fodder, and image notes
- · feat(posts): add generated thumbnail metadata
- · fix(11ty): resolve TemplateContentPrematureUseError via safeContent helper
- · Add Qwen3.6 MTP blog post
- · fix(projects): filter private repos and remove manually curated private projects
- · rename(lexicon): grandiloquent → lexicon everywhere
- · add wikibones post thumbnail
- · docs: remove stale footnote reference from wikibones post
- · chore: humanize Wikibones post and bump version to 2.0.7
- · feat: add utility snippets for network scanning and site mirroring, and define humanizer agent skill
- · feat(posts): add editorial writing primitives
-
April 2026
- · Docs: add cost-effective-coding-agents update note
- · feat(notes): sync frontmatter and update feed collection mapping
- · refactor: standardize feed card classes and fix masonry layout for grid view
- · refactor: update tags in 2026-04-25-tps-over-quality note
- · refactor: update Vault 76 structure to separate personal records from notes and add post on Obsidian usage philosophy
- · feat(notes): add TPS over Quality note and finalize inbox manifest
- · feat(inbox): update skills for manifest-update and cleanup manifest
- · feat(blog): add hero sketch for obsidian post and replace em dashes
- · docs: add workflow instructions and new skills
- · feat(ui): standardize content attribution and fix feed rendering
- · feat(homepage): update site index to include Snippets and Feed
- · style(design): complete editorial typography migration across all pages
- · style(design): fix vanilla font in authorship badge label
- · feat(homepage): rename Selected Work section to START HERE
- · style(design): revert editorial title sizes to original baseline
- · feat(homepage): remove draft post from featured work
- · style(design): increase title sizes on notes and collection pages
- · style(design): reduce line height in posts for a denser feel
- · style(design): unify and sharpen background grain for light and dark modes
- · style(design): refine dark mode texture for a cleaner aesthetic
- · feat(now): archive previous update and launch v2 redesign entry
- · fix(design): resolve vanilla font issues on feed and about pages
- · refactor: migrate stats, projects, reading, and cv to editorial design system
- · merge: integrate feat/workbench-homepage into feat/chaos-home-index
- · fix: resolve mangled template tags and update qwen hero image transparency
- · refactor: migrate templates to editorial design system
- · feat(design): implement v2 workbench layout and typography system
- · feat(design): migrate remaining collection pages to editorial type system
- · feat(design): migrate reading, projects, stats to new editorial type system
- · feat(quotations): add Geoff Hinton quote on GPT parameters
- · feat: add new Grandiloquent collection for mental models and parables
- · feat(quotes): add Bobby Kennedy quote
- · feat(quotes): add Ralph Waldo Emerson quote
- · feat(quotes): add Michael Scott and Warren Buffett quotes
- · feat(quotations): add Alan Moore and Douglas Adams quotes
- · feat(quotations): add Raj Nandan Sharma quote on AI and judgment
- · feat: add Nietzsche quote to quotes and about page
- · fix: gallery hover shadow overlay and masonry grid clipping
- · feat: wide mode for gallery, vibes, and quotes pages
- · fix(pages): convert md pages to njk to fix page-header indentation, loosen quotation clip threshold
- · feat(ui): rebalance nav mega-menu, fix vibe icon, fix quotation clipping, move AI badge to header, redesign CV page
- · design(ui): apply surface tokens to cartebase charts image sizing, update colophon design copy, remove redundant hr separators from cv
- · design(ui): apply global surface tokens to stats tables and cartebase charts, use dynamic accent for drop caps
- · design(ui): unify legacy custom boxes into global .surface design system
- · feat(inbox): import 0 photos / 4 vibes / 15 ai-memes
- · feat(ui): distinguish pinned and featured posts with bookmark icon and data cascade bugfix
- · refactor(ai-memes): migrate to fully config-based folio via memes.yaml
- · feat(inbox): import 4 ai-memes
- · refactor: update quotation component UI, migrate routes to /quotations, and increase page-list pagination size
- · feat: update blog content, add comparison table, and redesign quotation feed card layout
- · feat: add meta post documenting 2026-04-16 development activity and costs
- · feat: add blog post about agent IDE preferences and meta-log of daily development costs
- · feat: add "In Search of the Agent IDE" post, implement transparent card styling, and update annotation layout logic
- · feat: implement per-post image support with automated SEO metadata and archive thumbnails
- · feat: add new blog post on Agent IDEs and update index layout to support featured post images
- · feat: add support for post-specific images with automated processing and updated SEO metadata.
- · Add blog sketch generation workflow, implement image processing scripts, and update post content with new assets.
- · refactor: improve API reliability with robust error handling and add site-wide audit documentation
- · feat: implement quotations page
- · post(vault-76): iconize migration, terminal plugin, templates, 9. daily, changelog
- · feat: add new AI-native projects to portfolio and publish retrospective and research posts
- · feat: add documentation for agentic IDE workflows and update project listings
- · feat(feed): implement denser stream lifestream layout
- · refactor(blog): merge meta into agents, rename gpt-oss-benchmarks, update template
- · refactor(blog): establish agents and homelab series, dismantle tech/personal folders
- · feat(blog): add series callout and restore giscus threads for moved posts
- · feat: group local inference posts into a series folder and add redirects
- · chore: resolve merge conflicts with origin/main
- · chore: merge main into dependabot branch and resolve package.json conflicts
- · fix dates
- · feat: add opt-in editorial post mode
- · feat: add /data and /listening cartebase dashboards
- · feat: add blog post about Claude Code
- · content: correct dates for wukong TIL and qwen3 post
- · content(quotes): add four new quotes
- · fix: update setup instructions and improve clarity in Gemma 4 documentation
- · content: add TIL note about Goku and Wukong etymology
- · content: add TIL note about deck shuffling probability
- · docs(agents): add inbox cleanup step to media-import skill
- · feat(media): implement automated ingestion pipeline and ingest inbox batches
- · feat(agents): add media-import skill for unified inbox ingestion
- · feat(projects): native github profile card built from github-card.js data
- · feat(projects): swap static github card png for live github-readme-stats svgs
- · feat(projects): add github.cards profile image to github activity section
- · fix(photos): replace ai-generated captions with short human titles
- · feat(feed): clip oversized note cards with fade overlay
- · feat: add copy as markdown functionality to technical content
- · fix: add prompts collection and navigation entries
- · feat: enhance search functionality and visibility
- · feat: add prompt library with bouncing balls challenge
- · merge: reconcile divergent branches
- · gemma 4 init
-
March 2026
- · fix(folio): QA Agent Tick captions
- · feat(site): finish 10-item polish batch
- · chore(ui): make pinned indicators icon-only
- · feat(folio): add agent tick view counter
- · fix(folio): dedupe memes and refresh header motif
- · fix(folio): contain meme media and hide unforwarder v2
- · chore(instructions): switch workflow to main
- · fix(post): remove gpt-oss merge markers
- · feat(folio): expand agent tick archive
- · feat(folio): add Agent Tick ✓ — AI meme archive
- · merge: sonnet into main
- · chore(metrics): add slug merge check utility
- · fix(metrics): merge slug counters and add snippet views
- · bunch of bench
- · Polish post typography and update benchmarks
- · Update gpt-oss-120b local inference post
- · Add AI usage policy and content directives
- · Update Qwen3-Coder-Next post with MoE benchmarks
- · update aidar post: new pattern types, malfist calibration quote, references
- · Update aidar blog post with current patterns and scan results
- · chore: replace em dashes with normal dashes project-wide
- · adjust authorship badge layout with `w-fit` and `flex-none` classes.
- · now: add claude code stats screenshot with rookie numbers caption
- · site: badges, notes, feed, now page, projects, reading list
- · post: add GitHub link for window.carteakey.dev
- · post: code is live at window.carteakey.dev
- · note: add link to Zed disable AI blog post
- · notes: split toggle+aidar into its own note
- · fix: tag Self-Host casing to match existing convention
- · fix: tag RPi to match existing convention (avoid duplicate permalink)
- · post: better windowswap example + live site screenshot
- · post: tags rpi + self-host
- · post: tag rpi only
- · post: add images and trim tags to 2 for WindowSwap post
- · post: Building My Own WindowSwap
- · restore: feather icons in authorship-badges note body
- · fix: note feed preview content and remove shortcodes from note body
- · authored_by: final pass — gpt-oss-120b human, all posts classified
- · authorship: softer AI generated copy, toggle idea to inbox, note placeholder
- · remove tailwind TIL; update template with draft + authored_by docs
- · authorship badges: complete coverage pass
- · authorship badges: compact feed variant, multi-type pinning, note fix
- · authorship badge system: human / ai-assisted / ai-generated / unclassified
- · NEAT framework: rename TEA→NEAT, publish post, draft system improvements
- · radiohead folio: individual album icon placeholders + onerror fallback, live-videos TOC entry
- · radiohead folio: album icons, classified box, err line, dark print, bear cat, og image
- · radiohead folio: polish pass — live videos, OG tags, print css, on a friday, astoria, site9 radiohead.tv, 64kb
- · radiohead folio: live videos section, curation footnote, links.md sync, inbox notes
- · radiohead folio: reorder sections (music moved to pos 6), add TOC
- · radiohead folio: add HTTT live album, fix mobile footer, add inbox notes
- · fix(folio): reorganise music section, fix links, add radiohead.fr
- · feat(folio): link albums, b-sides, and dead link Wayback archives
- · fix(folio): remove personal notes, add OKNOTOK reissue
- · fix(folio): move dead links section to last before closing scribble
- · fix(folio): hide top eyebrow, single-line footer, increase subline visibility
- · fix(folio): change site thumbnail format from jpg to png
- · feat(folio): add thumbnail slots for archive site cards
- · fix(folio): trim intro, remove dead W.A.S.T.E. Links entry
- · feat(folio): add plain link index page at /folio/radiohead/links/
- · fix(folio): remove duplicate Injektilo, add Slowly Downward, fix descriptions
- · feat(folio): add missing content entries, CSS quirks, visitor counter, dead links
- · feat(folio): complete album discography, dead links section, fix descriptions
- · feat(folio): add missing sites from research (Not For Profit, Et Cetera, At Ease, Radiohead Almanac)
- · feat: Introduce the 'folio' content type, add a new bookmark, and update the Obsidian vault structure post with tool selection and an expanded hierarchy.
- · feat(folio): add /folio/ section with Radiohead web archive
- · Add -ctk q8_0 and -ctv q8_0 params to Qwen3-Coder-Next config, update changelog
-
February 2026
- · feat(uses): add Audio section, update peripherals
- · feat(uses): reorganize into Organize section, update devices and tools
- · fix: ? shortcut overlay (Shift key was blocked)
- · fix: v1.8.3 — bare-key shortcuts (no browser conflicts), search shortcut, uncapped changelog, archive images
- · feat: v1.8.2 — notes page, Ctrl/Cmd shortcuts, git changelog history, stats fixes, footer links
- · feat(stats): dense redesign with real word count + posts-per-year bars
- · feat: creative features — colophon, now archive, TIL, reading shelf, changelog timeline
- · docs: add creative features roadmap to TODO.md
- · fix(mobile): feed date as 'Feb 26' mobile / full on 480px+; hero center mobile only
- · fix(hero): center links on mobile, left-aligned on sm+
- · feat: microposts → notes with pages; nav/mobile/footer fixes v1.7.2
- · feat: Dense Editorial redesign v1.7.1
- · fix: homepage masonry grid, mobile slider dot, footer mobile layout
- · fix(nav/feed): mobile nav, consistent view toggles, feed search in header
- · feat: teal default accent, dynamic feed grid heights, CSS cleanup
- · feat(nav): slider in nav bar; unify site title; slightly taller nav
- · fix(slider+hover): slider thumb visible; title-hover unlayered
- · fix(hover+slider): title-hover specificity fix; accent slider explicit window call
- · fix(snippets): reverse sort — newest first, matching blog
- · feat(snippets): match blog layout exactly; fix homepage feed grid/nav
- · fix(links): gray by default, accent on hover; fix avatar CSS; homepage feed grid-default
- · fix: v1.6.2 — copy buttons, blog sort, feed links, snippets, image centering
- · fix: v1.6.1 — code blocks, avatar, image shortcodes, projects/gallery cleanup
- · feat: v1.6.0 — accent fixes, feed list/grid, stats hero, footer icons, dep bumps
- · feat(post): redesign post navigation with title-hover, meta labels (v1.5.8)
- · fix(typography): scope site-content links to prose elements, TOC styles, nav isolation (v1.5.7)
- · feat(ui): density pass, accent variable cleanup, text-size consistency (v1.5.6)
- · feat(typography): drop prose, custom site-content CSS, density pass all pages (v1.5.5)
- · feat(ui): complete accent color system + full redesign sweep (v1.5.4)
- · fix(ui): design consistency sweep across all remaining pages (v1.5.3)
- · fix(layout): reduce page max-width (3xl→2xl, 4xl→3xl, 5xl→4xl)
- · fix(ui): accent color system + now/snippets/search/games/workouts design consistency
- · feat(ui): Ground-up redesign v1.5.1 — coherent design system
- · feat(ui): Dense Editorial redesign — flat rows, tighter typography, less chrome
- · refactor: update project listing to use a list format and improve layout
- · feat: add new post on measuring AI-like writing styles with aidar tool
- · docs: flesh out databricks EDA blog post methodology
- · cj
- · docs: Update post description.
- · Add post: Ramblings on Running an Army of Very Smart Five-Year-Olds
- · feat: add new CachyOS setup and SSH snippets, and adjust existing post titles and formatting.
- · docs: Update Amp free tier status to full
- · docs: Add note on token efficiency of non-thinking models
- · feat: Add a comprehensive blog post template demonstrating Eleventy features and related coding agent images.
- · docs: Apply review suggestions to cost-effective agents post
- · feat: site improvements, lighthouse fixes, and uses page redesign
- · fix(post): remove Pandoc anchor from qwen3-coder-next post causing Nunjucks parse error
- · feat: add blog post detailing optimization of Qwen3-Coder-Next for 40 t/s local inference.
- · feat: add redirects for blog post URLs with spaces to improve SEO
- · feat: add redirect for optimizing gpt-oss-120b blog post
- · feat: add click-to-zoom for images, widen layout, new random fact
- · fix(blog): accent-themed featured link, fix list sort, add ChatGPT themes micropost
- · feat(blog): add pinned post support, fix featured post, consistent styling
- · meh
- · updated gpt post
- · updated avatar
- · fix(blog): hide drafts from tag pages, add unified draft banner, standardize tags, fix upvote & layout
- · Create Blog “2026-02-12-dont-give-away-to-the-gradient-descent”
- · style: Remove background image from dark theme body.
- · feat: add skills radar page, update about/CV, and blog post (draft)
- · feat: redesign footer, guestbook, projects, uses & more pages
- · fix: handle null track data in currently playing response
- · fix: update permalink for More page to /more-card/
- · nice
- · Revert "fix: apply zen colors with higher specificity"
- · fix: apply zen colors with higher specificity
- · style: compact projects cards for higher density
- · docs: update CHANGELOG and TODO for v1.4.5
- · feat: search filter on blog, white card bg, fix endif, npm update
- · style: standardize UPDATED labels to uppercase format
- · fix: remove duplicate footer nav, keep accent switcher
- · feat: enhanced footer nav, uppercase tags, 2x2 more page
- · fix: blog grid, zen colors, more page descriptions
- · fix: revert footer to icons-only, convert more.md to more.njk
- · feat: major UI improvements batch
- · feat: increase information density across site
- · refactor: unify UI/UX with centralized design system
-
January 2026
- · fix: Update quote request to specify "plain English text" and improve layout styles in posts list
- · feat: Enhance UI components with new styles and animations
- · feat: add "Hidden (Draft)" toggle for blog posts and update version to 1.4.2
- · feat: add service worker for offline support and caching
- · Create Blog “2026-01-02-using-claude-code-or-any-other-agent-for-data-analysis-on-databricks-draft”
-
December 2025
- · chore(deps-dev): bump eleventy-plugin-feathericons from 1.1.0 to 2.0.0
-
October 2025
- · feat: enhance McAfee experience section with detailed project contributions and technologies used
- · feat: update post title to remove draft status for webcam server project
- · feat: add new post on turning an old webcam and RPi into a camera server; include images and timelapse GIF
- · feat: remove Personal Braumgartner Restoration post; delete outdated content
- · feat: add Personal Braumgartner Restoration post with photo restoration examples; include new images for before and after comparisons
- · feat: adjust max-width for layout container to improve responsiveness
- · feat: update changelog for version 1.3.20; add redirects for legacy blog URLs; enhance workouts and games snippets layout; improve now page styling; refine quotes section; update version info
- · feat: add guestbook page and Netlify form; enhance game and workout snippets; unify card styles across components; improve playtime display; update stats intro; refine quotes layout; bump version to 1.3.19
- · chore: update changelog for version 1.3.18
- · Refactor featured content normalization and sorting logic; enhance games snippet layout; update about page styling; improve blogroll design and functionality; refine bookmarks presentation; enhance games page aesthetics; update newsletter section for better UX; revamp projects display; adjust quotes page layout; clean up CSS for project and bookmark cards; enhance stats page styling; optimize vibes page layout; improve workouts section presentation; bump version to 1.3.17.
- · feat: update changelog for version 1.3.15; enhance grain overlay texture, improve post imagery, and refine mobile navigation
- · feat: remove unused font files from JetBrains Mono and Poppins
- · feat: update changelog for version 1.3.14; add load-more functionality to feed page, enhance backdrop texture, and improve font handling
- · feat: add new font files for Saira, IBM Plex Mono, Urbanist, Exo 2, Arimo, Rubik, and Crimson Pro
- · feat: update changelog for version 1.3.13; add random fact feature, homepage post card, and feed links; adjust global font size and fix breadcrumbs
- · now update
- · feat: update layout for post template and add new blog post on AI workflow
- · feat: simplify layout classes in multiple templates for consistency
- · feat: update changelog for version 1.3.12; add new blogpost entry, enhance feed layout, and implement fallback for GitHub contributions
- · feat(todos): update TODO list with new blogpost and layout tasks; enhance feed card styles and layout
- · feat(todos): add new blogpost entry and update card style descriptions in TODO list
- · feat(layout): update styles for comment pointer and outline sections
- · feat: update changelog for version 1.3.11, enhance layout styles, and fix layout issues
- · feat: update changelog for version 1.3.9, enhance layout styles, and implement masonry grid for feed
- · feat: update changelog for version 1.3.8, add comment pointer component, and enhance layout styles
- · feat(fonts): add Poppins font family in various styles and formats
- · feat(layout): add accent-aware reading frame
- · feat: add GitHub contributions component and integrate into projects page
- · chore: update project documentation and add agent instructions
- · feat: add Copilot playbook for contributing guidelines and workflows
- · fix: correct title formatting in optimization post for clarity
- · feat: enhance EthicalAds integration with improved layout and breakpoint adjustments; add new microposts and remove outdated benchmarks
- · Add EthicalAds integration and enhance image handling
- · feat: update changelog for version 1.3.2, add EthicalAds setup documentation, and enhance feed view with improved styling and content types
- · feat: add asset copying functionality and enhance feed collection with additional content types
- · docs: site improvement TODO list
-
September 2025
- · fix(footer): add spacing to Made with section
- · refactor(footer): simplify navigation with separators instead of categories
- · feat(stats): enhance stats page and add unified feed
- · fix: improve footer organization and navigation structure
- · feat: batch 1 - organize footer, fix stats bug, add bookmarks & github graph
- · feat: improve navigation and stats page
- · docs: add newsletter setup guide
- · refine: improve search, blogroll, layout and navigation
- · feat: add search, related posts, loading states, blogroll, and newsletter
- · fix: easter eggs and reading time layout
- · feat(ux): add estimated reading time to blog posts
- · feat(seo): add JSON-LD structured data for better search engine understanding
- · feat(seo): add Open Graph and Twitter Card meta tags
- · feat(navigation): add breadcrumb navigation for better UX
- · feat(easter-eggs): add fun hidden features to enhance user engagement
- · feat: enhance layout and styling for improved visual consistency across pages
- · feat: update typography and font usage for improved readability and consistency
- · feat: enhance sidebar layout with scrollable content area
- · feat: add Plus Jakarta Sans font files for enhanced typography options
- · feat: update layout and font usage for improved readability and consistency
- · feat: update reference link format for clarity in optimization guide
- · feat: update community resource links for gpt-oss-120b optimization
- · feat: update personal description in index.njk for clarity
- · feat: update CPU pinning method to use taskset for better P-core isolation
- · feat: optimize gpt-oss-120b run script and update CPU pinning method
- · feat: add additional optimization parameters for gpt-oss-120b local inference
- · feat: add virtual photo entry for Son Wukong
- · feat: update posts collection to sort by date and enhance recent posts display
- · feat: add new virtual photo entry for Son Wukong
- · feat: add new posts on personal experiences and hardware insights
- · feat: add additional community resources for optimizing gpt-oss-120b performance
- · fix: update experimental parameters section for clarity and formatting
- · refactor: update prerequisites and optimize formatting in inference guide
- · fix: correct token processing results and enhance script formatting in optimization guide
- · feat: add GIF handling in image shortcodes with public URL mapping
- · feat: add new static images for enhanced visual content
- · feat: add guide for optimizing gpt-oss-120b local inference on consumer hardware
- · feat: enhance Vibes page with shuffle button and responsive image layout
- · add new vibe images
- · feat: add Vibes page with dynamic image loading and layout adjustments
- · feat: add utility filters for site statistics and update stats page layout
-
August 2025
- · feat: add site statistics page with detailed metrics and activity tracking
- · fix: standardize tag capitalization in blog post metadata
- · feat: add installation guide for Copyparty and remove outdated debounce snippet
- · Create Blog “2025-08-05-between-two-worlds”
-
July 2025
- · feat: implement bulk photo processing with AI-generated descriptions and metadata handling
- · add new photography entries
- · feat: add new photography entries with detailed metadata and images
- · feat: enhance GPS data handling and improve EXIF metadata extraction
- · feat: add new images and descriptions for various photography entries
- · feat: add exif-reader and inquirer dependencies; update yargs version
- · feat: enhance image description generation with improved AI model integration and error handling
- · feat: add script to process images and generate descriptions using AI models
- · feat: add image for single or multiple vaults illustration
- · feat: add new blog post on organizing notes and resources with Obsidian
-
June 2025
- · fix: remove redundant section on programming abstraction evolution
- · blog: add new blog post on the evolution of programming
- · feat: add accent color theme management and enhanced footer navigation
- · fix: enhance caching logic for Strava token and activities
- · feat: implement quote of the day functionality and add static quotes page
- · fix: remove error handling for non-array responses from GitHub API
- · blog: add animated image from 'The Wind Rises'
- · fix: improve caching logic for Strava activities
- · feat: add Steam games integration
- · fix: remove unused mermaid plugin from dependencies
- · fix: remove unused mermaid plugin and add archive-specific date filters
- · fix: handle non-array response from GitHub API and improve error logging
- · fix: add link to view all recent workouts in workout snippet
- · fix: update workout page layout and improve date formatting
- · fix: improve map image rendering in Strava activities
- · feat: add Strava integration with activity fetching and display
- · add new entry for June 22, 2025
- · fix: correct capitalization of 'Life' tag in happiness quotient post
- · Update src/_includes/layouts/base.njk
- · fix: Improve image responsiveness in Atom feed
- · feat: Switch to Atom feed using virtual template
-
May 2025
- · blog: add new post on the happiness quotient
- · feat: Add RSS feed
- · feat: update CV with new job titles and responsibilities
- · feat: enhance README with detailed project description, tech stack, and features
- · feat: add new blog post on the TEA framework and its tech stack
- · feat: add mermaid plugin for diagram support
- · feat: add now page collections and archive functionality
- · fix: ensure post remains hidden by default
- · feat: add snippet functionality
- · add new blog post on quirks of owning a Mac
- · feat: add custom collections to filter out hidden and future-dated posts
- · Create Blog “2025-05-03-guide-to-forcing-or-blocking-windows-updates-draft”
-
March 2025
- · feat: add GET method to fetch upvote count and improve upvote handling
- · fix: improve wording for clarity in blog post
- · fixed wording and title
- · Create Blog “2025-03-28-ghiblicize-everything-or-should-we”
- · stuff that cant be done via CMS
- · Create Blog “2025-03-22-the-unforwarder-how-i-stopped-backing-up-junk-photos”
- · feat: add new photographs and update gallery description
- · feat: enhance dropdown functionality with hover support and transition effects
- · feat: integrate Alpine.js for enhanced dropdown functionality in navigation
- · feat: update gallery header
- · feat: enhance navigation layout with dropdown
- · Create Blog “2025-03-15-mounting-additional-drives-in-wsl2-draft”
- · feat: add meta generator tag for Eleventy in base layout
- · feat: update gallery layout for better image display and add new photo entries
- · feat: enhance gallery layout with responsive design and improved image handling
- · feat: update photo entries and add new images for gallery
- · style: update layout for personal projects section with improved styling
- · feat: add thumbnail shortcode for generating gallery image thumbnails
- · fix: remove unnecessary whitespace in base layout template
- · fix: add timeout to Ollama API request for improved reliability
- · feat: add new gallery page
- · content: add new real photo of Downtown Toronto with metadata
- · feat: enhance photography gallery with improved metadata and custom captions
- · feat: add photography gallery with real and virtual photos
- · fix: correct formatting and improve clarity in blog post on exposing local LLMs
- · feat: integrate Ollama API for quote generation with fallback to OpenAI
- · Update Blog “2025-03-06-exposing-local-llms-to-the-internet-draft”
- · Delete “src/static/img/alvin.png”
- · Create Blog “2025-03-06-exposing-local-llms-to-the-internet-draft”
- · Update Blog “2024-12-28-why-one-should-self-host-in-2024-draft”
-
February 2025
- · feat: replace Utterances with Giscus for blog comments
- · feat: add upvote functionality to blog posts
- · chore: configure Netlify functions directory
- · feat: add Netlify serverless function for upvoting posts using Upstash Redis
- · Update Blog “2024-12-28-why-one-should-self-host-in-2024-draft”
- · refactor: update Node.js version in .nvmrc to 22
- · refactor: comment out styles for code blocks in tailwind.css
- · refactor: remove external font links
- · refactor: update layout styles and improve responsiveness
- · refactor: adjust padding in posts list for improved layout
- · refactor: update projects.yaml
- · refactor: improve project showcase layout and styling
- · refactor: enhance CV layout
- · refactor: update Tailwind CSS to 4.0
- · chore: update dependencies, improve README, and refine project tags
- · refactor: migrate from CommonJS to ESM
- · fix: update post title and correct Taiscale typo
- · style: update CSS styles
- · refactor:remove unused highlight.js and PrismJS references
- · feat: add CV page and update Eleventy configuration
- · feat: upgrade Eleventy to version 3.0
- · feat: add Eleventy 3.0 configuration
- · feat: update headshot image
- · feat: add new headshot images for profile update
- · feat: add custom font faces and update CSS styles in tailwind.css
- · feat: update font family in Tailwind configuration
- · feat: replace Google Fonts with self-hosted fonts
- · fix: update job title and modify contact information in about.md
- · (chore) update job title and company link in index.njk
- · (feat) dependabot configuration for npm
-
December 2024
- · Create Blog “2024-12-28-why-one-should-self-host-in-2024-draft”
-
April 2024
- · added notes
-
March 2024
- · Update Blog “2023-09-04-running-your-own-copilot-in-vscode-on-a-mac”
- · Create Blog “2024-03-26-my-favorite-meme”
-
December 2023
- · add cv link
- · blog - dumbing down my iphone
- · feat: missing config
- · blog: cringe --
- · feat: last update on CMS
- · feat: image with captions
- · feat: last update date
- · feat: optimized image sizes. gotta push those lighthouse scores up.
- · feat: custom classes in image tag.
- · (projects) - new project image fix
- · (projects) - new project
-
September 2023
- · grammar tweaks
- · misc
- · Create Blog “2023-09-04-running-your-own-copilot-in-vscode-on-a-mac”
-
June 2023
- · (misc) removed cv
- · (fix) github repos list
- · (fix) rollback snippet fix
- · attempt #2 for redirects
- · (fix) hardcoded cv url
- · (fix) moved redirect to netlify.toml
- · (feat) moved cv to notion
- · moved cv to notion
- · github projects
- · (blog) - rename
- · (feat) - better code snippets
- · (blog) misc fixes
- · (blog) misc fixes
- · missing dots.
- · Create Blog “2023-06-04-remoting-into-wsl2-externally-the-simple-way”
- · (fix) - netlify cms cursor jump fix
-
May 2023
- · (content) - added old blog project + few fixes
- · new project
- · remove annoying DS_Stores
- · Create Blog “2023-05-22-repurposing-my-laptop-as-a-home-server”
- · CV section
- · Create Blog “2023-05-22-repurposing-my-laptop-as-a-home-server”
- · new font for name
- · resume update, portfolio > projects, misc tweaks
- · nice
- · less funk + dynamic code theme
-
April 2023
- · funk++
- · more funky pls
- · mobile badge fix
- · mobile navbar fix
- · mono font - some personality
- · lot of trimmed fat , formatting, custom font
- · misc fixes
-
March 2023
- · fix netlify build
- · (feat) now playing widget
- · (feat) netlify daily build hook
- · (upgrade) bumped deps + webc experiment
- · mastodon link + badge height fix
- · mastodon icon
- · height fix
- · misc badge fixes
- · misc stuff
- · added openai plugin
- · added certification badges
- · added intro in landing page
- · title change
- · chatgpt powered quote lmao this is my peak
-
February 2023
- · dynamic theme icon
- · smooth scroll + some tweaks
- · table of contents
- · mobile friendly
- · misc tweaks
- · cleaner blog list
- · Create Blog “2023-02-14-moving-my-site-from-jekyll-to-eleventy-part-ii”
- · fix tags
- · json to yaml contd.
- · renamed assets to static, move json to yaml, new blockquote method
- · renamed assets to static, move json to yaml
- · add netlify CMS
- · post: article name change
- · added quote animation
- · added utterances
-
January 2023
- · redirect projects to portfolio
- · fix chrome transition animation.
- · projects --> portfolio
- · cleanup structure + more tweaks
- · mobile padding fix
- · sharp edges only please
- · project tweak
- · design tweaks
-
December 2022
- · mobile friendly tags
- · twitter link
- · date tag update
- · projects image fix
- · short images
- · dark mode final
- · dark mode toggle
- · added favicon
- · projects contd.
- · projects page
- · finally a fixed width ffs
- · ngl this is almost there
- · avatar src issue fix
- · added avatar
- · remove picture
- · added emoji reference
- · minor typo - obsidian
- · adjustment to dark mode
- · added dark mode + about pic
- · vaapi article update
-
November 2022
- · add github linkedin icons
- · hide link anchors
-
October 2022
- · article fix
- · article fix
- · tailwind
- · tailwind migration complete
- · minor fixes
- · google fonts
- · add tailwind
- · added google analytics
- · move to src
- · move to src
- · New Post - 30 Oct 22
- · css format
- · date fix
- · rename Archive to Blog
- · outputDir Typo
- · outputDir typo
- · Update README.md
- · generate images directly inside site folder
- · better images
- · eleventy image
- · remove syntax - add later
- · prism + markdown emoji + cheeky block workaround
- · added md plugins
- · fix a typo.
- · new post - jekyll to 11ty
- · migrated images
- · google font plugin
- · migrated about me page
- · migrated about me page
- · migrated posts
- · formatting njk
- · updated metadata, removed feed, updated package.json
- · 11ty starter blog